"Hablaré con el corazón abierto en palabra de voluntad
y
razón de sentimiento."
---Si quieres construir un barco, no empieces por buscar madera, cortar tablas o distribuir el trabajo. Evoca primero en los hombres y mujeres el anhelo del mar libre y ancho---

viernes, 28 de marzo de 2008

Hacer un backup MySQL con CRON en Linux

ya tenia un buen rato que no posteaba por aca bueno ni pex

Es siempre bueno realizar un backup de nuestras bases de datos en caso de algún fallo, perdida o error humano (que es lo que más suele ocurrir). Como ya muchos saben Linux posee una herramienta llamada CRON el cual permite ejecutar tareas repetitivas periodicamente.

Script de backup MySQL

amos a crear una carpeta para guardar el backup que vamos a generar, esta carpeta la puedes crear donde quieras, yo personalmente la creé en mi directorio raíz pero lo puedes crear donde quieras:
saser@saser# mkdir /respaldosql

En nuestro editor de texto favorito escribimos el script que hará el
backup de la bases de datos que tengamos en nuestro servidor de MySQL:

#!/bin/sh
mysqldump -uroot -ppwd --opt db1.sql > /respaldosql/db1.sql
mysqldump -uroot -ppwd --opt db2.sql > /respaldosql/db2.sql
cd /home/usuario/respaldosql/
tar -zcvf respaldosql_$(date +%d%m%y).tgz *.sql
find -name '*.tgz' -type f -mtime +2 -exec rm -f {} \;
Guarda este script con el nombre mysqlrespaldo.sh (o el nombre que más te parezca) en donde quieras, yo tengo una carpeta llamada scripts en mi directorio home, es a gusto de cada quien.

Vamos a analizar el script línea por línea: la primera línea #!/bin/sh simplemente le indica al bash que es un script ejecutable y donde va a buscar el bash que va a utilizar para ejecutar este script en este caso /bin/sh.

La segunda línea es la que hace todo el trabajo, mysqldump es un comando que “vuelca” o copia todos los datos que estén dentro de la base de datos que le indiquemos en la línea de comandos, las opciones son las siguientes:

  • -u es para indicar el usuario en este caso es root pero puede ser cualquier otro usuario que tenga privilegios sobre la base de datos
  • -p es para indicarle el password aquí tienes que colocar el password del usuario que estás utilizando para conectarte en la base de datos.
  • –opt db1 aquí indicamos cual es base de datos que queremos que copie en este caso db1
  • el operador > redirecciona la salida del comando hacia un archivo llamado db1.sql en una carpeta llamada respaldosql.

La línea que sigue hace exactamente lo mismo que la primera pero con otra base de datos llamada db2, puedes agregar tantas base de datos como quieras a este script.

Después cambiamos al directorio de respaldo donde acabamos de crear los archivos db1.sql y db2.sql con cd /respaldosql/ y comprimimos todos los archivos en uno solo con su respectiva fecha con el comando date, esto es para tener un respaldo anterior y saber cuando lo hicimos, es útil en caso de que por alguna razón queramos un respaldo viejo.

La última línea es opcional, lo que hace es buscar todos los archivos comprimidos que tengan más de 2 días y los elimina, esto es para evitar que se nos acumulen archivos antiguos, puedes cambiar con que frecuencia quieres borrar estos archivos puedes utilizar man find para mayor información.

Muy bien ahora tenemos nuestro script listo lo primero es hacerlo ejecutable:

saser@saser#chmod 700 mysqlrespaldo.sh

Añadiendo el Script a CRON

Como ya mencioné anteriormente CRON es una herramienta que posee Linux para ejecutar programas o scripts en forma repetitiva. Para modificar la tabla de cron ejecutamos el siguiente comando en nuestro shell:

crontab -e

Se abrirá el crontab en nuestro editor de texto por defecto aquí agregamos la siguiente línea y guardamos nuestro archivo:

0 1 * * * /home/usuario/scripts/mysqlrespaldo.sh

Guardamos nuestro archivo y ya está listo para ejecutarse diariamente, vamos a explicar un poco como funciona (recuerda colocar en /home/usuario/scripts la ruta donde guardaste tu script).

El archivo de crontab tiene la siguiente estructura de izquierda a derecha:

  • Minutos (rango de 0-59)
  • Horas (0-23)
  • Día del mes (1-31)
  • Mes (1-12)
  • Día de la semana (0-6 siendo 0=Domingo)
  • Path completo al script o programa que queramos ejecutar

Cualquier campo con * quiere decir que se corre a cualquier posible valor de ese campo. Así que en nuestro caso el script correrá todos los días a la 1:00 de la madrugada.

martes, 1 de enero de 2008

Creación de la imagen (Imagemagick) GRUB/Splash

la puedes hacen el el sperpoderoso GIMP o
buscar la imagen que mas te agrdae y aplicarle el siguinte comando



convert pictureXXX.jpg -resize 640x480! -colors 14 -depth 8 ImageName.xpm.gz




y lo unico que te queda es copiarla a


#cp ImageName.xpm.gz /boot/grub/


y modificar en el


#vim /boot/grub/menu.lst


agrgarle lo siguiente onde queiras


"splashimage=(hd0,2)/boot/grub/ImageName.xpm.gz" sin comilllas XD



eso estodo amigos :S

COMO Recuperar GRUB

Me ha pasado frecuentemente que a la banda suele tener instalado guindow$ y linux en un mismo equipo y peor aun en un mismo disco, y no se porque suele dañarse Guindow$, alguin sabe???jajajaja, y pos les desmadra el grub.
y se me ocurrió postear este archirequeterecontrapequeño tutorial para hacer la reinstalación del gestor de arranque.
empesamos :-D

Para recuperar el grub vamos a usar un LiveCD, que debe ser de una distro que use GRUB: Así pues yo disponía de varias Live-distro que usen grub: Knoppix, Ubuntu y ELive. Me decanté por la primera por ser la más conseguida y (con mucha diferencia) la que tiene el inicio más rápido de las tres. Si ya tenéis LiveCD de Ubuntu podéis usar ése sin problemas, incluso aunque el CD sea de Hoary y ya tengáis Breezy instalada: Sólo queremos instalar un gestor de arranque ;)

Suponiendo que ya tenemos LiveCD lo ponemos en el lector e iniciamos el PC desde ese dispositivo.

Hacemos un directorio para montar nuestra partición con Linux:


# mkdir /mnt/laostia podéis hacer el directorio que os dé la gana, mientras recordéis cuál era.


Montamos la partición con una orden de montaje convencional. En mi caso el formato de la partición es ext3, debes sustituirlo por el que se ajuste a tu caso, así como debes localizar la partición en la que tienes instalada debian (normalmente será algo como /dev/sda3, pero puede variar de un caso a otro).


# mount -t ext3 /dev/sdaXXX /mnt/laostia/


Ahora vamos a cambiar el origen de root de nuestro sistema de archivos al directorio en el que hemos montado Debian para que al instalar grub interprete que el "/" del sistema está ahí. Para ello usamos chroot.


# chroot /mnt/laostia/


Instalamos GRUB en el MBR del primer disco duro, que normalmente estará configurado como Primary Master (sda).


# grub-install /dev/sda


por ultimo erificamos que todo está bien revisando las entradas que se han incluído en /boot/grub/menu.lst y si están todos nuestros sistemas (que será lo más normal) ya podemos reiniciar nuestro sistema, retirar el LiveCD y disfrutar de nuestro gestor de arranque

Pero si esto no junciona aca tengo otra manera de resolver el detallito

Not found or not a block device!!!!!!!! :-O

Entonces lo que hice fue lo siguiente:



# grub


grub> root (hd0,7) /*Ahi es donde tengo mi particion de linux*/
grub> setup (hda0) /*Instala el grub*/
grub> quit

o puedes hacer lo siguiente.... en caso de que no sepas en donde se encuentra tu partición de linux


# grub --> ejecutamos el interprete de comando de grub
grub> find /boot/grub/stage1 --> busca donde esta la partición de debian
(esto te va dar hd0,7 "en mi caso", etc)

> root (hdX,Y) --> poner el valor devuelto anterior
> setup (hd0) --> instala grub en nuestro primer disco duro (hd0),
que es con el que inicia la computadora
> quit --> salimos del interprete de comando de grub


y a cobrar lo unico que queda es reinisiar el sistema sin olvidar claro quietar el cd live y papas

Y YA ESTARA TU NUEVO GRUB.

domingo, 18 de noviembre de 2007

Convertir vídeos avi a formato Mp4 en Debian GUN/Linux

Existe algunos programas en GNU/Linux que convierten archivos avi al formato mp4 que usan el iPod y la PSP.

Comento aquí dos: Avi2Ipod e ipodvidenc



El primero llama justamente Avi2Ipod y es un script para KDE. No lo he probado porque ahora sólo tengo Gnome.
Requisitos: Kommander y ffmpeg
Más concretamente ffmpeg debe estar compilado con soporte para xvid. Para saber si tu ffmpeg tiene activada tal opción tecleas:

ffmpeg -version


Y deberías encontrar el parámetro

--enable-xvid


Si no es así, debes seguir las instrucciones correspondientes para Ubuntu o Fedora.
En mi caso, he tenido que actualizar mi ffmpeg a fin de que tenga soporte para xvid y otros códecs como aac. Si tienes Ubuntu Feisty Fawn (y sólo en este caso), los pasos son:

1. sudo su -c 'echo deb http://packages.medibuntu.org/ feisty free non-free >> /etc/apt/sources.list'
2. wget -q http://packages.medibuntu.org/medibuntu-key.gpg -O- | sudo apt-key add - && sudo apt-get update
3. sudo apt-get install ffmpeg

(Por si acaso, antes he desinstalado la versión que tenía de ffmpeg)
Avi2Ipod trabaja con los códecs xvid (vídeo) y aac (audio) Permite configurar las opciones de resolución, bitrate de vídeo y bitrate de audio.



El segundo es ipodvidenc, un script que funciona como front end de ffmpeg.
Puedes bajarlo desde Hachemuda, y guardarlo, por ejemplo, en tu escritorio con el nombre de ipodvidenc. A continuación:

1. Hacer ejecutable el archivo:
chmod 755 ipodvidenc
2. Moverlo a un directorio que permita ejecutarlo desde cualquier otro:
sudo mv ipodvidenc /usr/bin
3. Ejecutar el script con el archivo de vídeo (avi o mpg) como parámetro:
ipodvidenc peli.avi


Y ya tienes tu archivo vob MPEG-4 listo para reproducir en alguna cháchara reproductora.

Convertir tus archivos flv a mpeg/avi en Debian GNU/Linux

Muchos nos descargamos videos desde YouTube y otros sitios colaborativos de videos y nos damos cuenta que vienen en el formato .flv, formato que no es muy amigable al momento de editar video. Pues lo que hacemos normalmente es convertir el video a uno “más amigable” como mpg o avi. Las opciones para convertir archivos de un formato a otro son variadas, pero nada comparado con la sencillez y potencia del terminal. Primero deberíamos de asegurarnos que tenemos lo necesario para convertir los archivos:

sudo apt-get install ffmpeg

Ya instalado el ffmpeg procedemos a convertir los archivos flv que queramos, abriendo un terminal en el lugar donde tienes el archivo .flv y tecleando

ffmpeg -i tu_archivo.flv tu_nuevo_archivo.mpeg

ffmpeg -i tu_archivo.flv tu_nuevo_archivo.avi


Se pueden agregar estos comandos, con las siguientes funciones:

-b : establece el bitrate del video en kbit/s (por defecto 200 kb/s)
-ab : establece el bitrate del audio en kbit/s (por defecto = 64)
-ar : establece el audio samplerate en Hz (por defecto = 44100 Hz)
-s : configura la resolución o el tamaño del frame. el formato es ancho x alto (por defecto 160×128)

Ejemplo:

ffmpeg -i Video.flv -b 400 -ab 56 -ar 22050 -s 320×240 Video.mpg

Tambien pueden convertir flash videos y otros formatos con el reproductor VLC que soporta streaming, bajando ademas todos los codecs y plugins. A veces el ffmpeg no convierte todos los flv’s, dando errores como este: Unsupported video codec.

jueves, 1 de noviembre de 2007

Visualizar Aplicaciones de Java en Compiz Fusión

A la hora de programar, y tener activo el Compiz Fusión pos no se ve ni madres del contenido de la ventana pos hay que hacer lo siguiente:

Bueno despues de buscar la solución encontre que esto se arreglaba facilmente:

Escribe en una terminal lo siguiente:

#vim /etc/environment

y agrega al archivo la siguiente linea, (de preferencia escribelo manualmente):

AWT_TOOLKIT="MToolkit"


y a programar

:D


miércoles, 19 de septiembre de 2007

TTS (Text To Speech ) usando Festival y MBrola en Debian ETCH

TTS (Text To Speech ) usando Festival y MBrola

Vamos a hacer a nuestro equipo en un lector de textos, mi proposito es
utilizar este sistema para aprender a pronunciar oraciones en otros
idiomas, en especial en frances, creo que es una gran herramienta para
ello, posteriormente voy a desarrollar una extensión para Firefox,
para que pueda leerle al usuario, sobre todo para las personas con
problemas visuales y por otro lado estoy ideando un software para
enseñar frances, claro, desarrollado para que se ejecute en Gnome, son
bienvenidos los voluntarios, dejen sus comentarios.

Festival

El nombre completo es Festival Speech Synthesis System, el cual es un
sistema de lo mas completo hecho para convertir texto en sonido y
viceversa, es un proyecto que ya tiene mucho tiempo, se puede
encontrar toda la información necesaria en
http://www.cstr.ed.ac.uk/projects/festival/ y en http://festvox.org.

Para instalarlo en Ubuntu tenemos que tener habilitados los
repositorios extras en el apt y teclear lo siguiente en una terminal.

#$: sudo aptitude install festival festlex-cmu festlex-poslex
festvox-ellpc11k festvox-kallpc16k libestools1.2

Aproximadamente se van a descargar como 40 MB y con esto vamos a tener
todo lo necesario para que pueda hablar nuestro equipo. Ahora vamos a
hacer unas pruebas para sorprendernos.

Vamos a hacer que nos salude en ingles, primero entramos a festival,
donde vamos a trabajar en un entorno de comandos del propopio festival

#$: festival

Vamos a ver algo como esto:

Festival Speech Synthesis System 1.4.3:release Jan 2003
Copyright (C) University of Edinburgh, 1996-2003. All rights reserved.
For details type `(festival_warranty)'
festival>

Ahora vamos a teclear lo necesario para emitir el sonido y escuchar
por primera vez a nuestro equipo. En la linea de comandos escribimos:

festival> (SayText "Hello Mr. MINOMBRE. How are you?")

¿Sorprendidos?, bueno aun queda que nos hable en español, ahora vamos
a salirnos de festival, para hacer esto solo escribimos "quit" y como
pueden ver, los comandos se escriben dentro de los parentesis:

festival> (quit)

Listo ahora vamos a hacer lo mismo pero con la voz en español, para
esto lo único que va a cambiar es mandar llamar festival con la opcion
"--language spanish":

#$: festival --language spanish

Y ahora en los comandos vamos a teclear lo siguiente

festival> (SayText "Hola wey. ¿Como estas canijo?")

Jaja ya se escucha mejor. ¿No? Bueno, todo bien, un ultimo paso para
terminar con festival. Festival se divide en dos partes, los comandos
y el TTS o Text To Speech, hasta ahorita hemos trabajado con puros
comandos, para utilizar el TTS es muy sencillo, vamos primero a crear
un archivo con un texto que querramos que festival lea.

#$: touch textoejemplo
#$: echo "El mejor es el que se parece a una piedra, sin desenvainar
la espada, consigue probar que nadie podra vencerlo" > textoejemplo

Ahora vamos a decirle a festival que lea esto en español:

#$: festival --language spanish --tts textoejemplo

No es nada dificil, ahora solo tenemos que poner nuestros libros en
archivos de texto, y decirle a linux que los lea por nosotros :D

MBrola

MBrola que se lee como 'im' 'brela' en un sentido como 'umbrella' que
es una palabra en ingles que significa sombrilla y no es el nombre de
la empresa que creó al virus de Resident Evil.

El proyecto MBrola fué iniciado por el laboratorio TCTS de la Facultad
Politécnica de Mons en Belgica, puedes ver más información en
http://tcts.fpms.ac.be/synthesis/mbrola.html, te recomiendo que des
click en las banderas que aparecen en la página, pero bueno. ¿Qué es
Mbrola? Tal vez ya haz notado que se oye MUY robotizada la voz que
emite festival, ah pues este proyecto se centra en esto, en mejorar la
pronunciación de festival y de otros sistemas, dejando que la voz se
escuche lo más natural posible, en veces no notas que el que esta
hablando es una aplicación, es por eso que la licencia de este
proyecto es solo para uso no comercial, ni para uso militar. ¡Ojo!
Sobre advertencia no hay engaño.

Bueno, ahora instalemos a MBrola, primero vayamos a
http://tcts.fpms.ac.be/synthesis/mbrola.html y descarguemos el
binario, en el caso para este tutorial es Linux i386 con el archivo
mbr301h.zip y también hay que descargar los archivos de las voces,
estas son las voces que yo recomiendo, tu puedes bajar la(s) que tu
creas convenientes:

us1: American English Female (6.8Mb) -> us1-980512.zip
fr4: French Female (5.4Mb) -> fr4-990521.zip
it4: Italian Female (4.9Mb) -> it4-010926.zip
es2: Spanish Male (5.1Mb) -> es2-989825.zip
mx2: Spanish Mexican Male (3.5Mb) -> mx2.zip

Te recomiendo dejar todos estos archivos en dos directorios distintos,
uno para MBrola y otro para las voces.

Para instalar MBrola necesitamos tener instalado unzip, si no sabemos
si lo tenemos basta con teclear lo siguiente:

#$: unzip

Si no regresa un mensaje de que no existe el comando entonces lo
instalamos con lo siguiente:

#$: sudo aptitude install unzip

Bueno, una vez que ya lo tenemos instalado, vamos a extraer primero lo
de archivo mbrXXXh.zip (XXX es la version que hayas descargado en mi
caso es 301):

#$: unzip mbr301h.zip

Esto nos va a dejar 7 archivos, te recomiendo que leas el archivo
readme.txt solo para una mayor referencia.

Tenemos ahora que mover el archivo mbrola-linux-i386 al directorio
/usr/bin y dejarlo con el nombre de mbrola, teclemos lo siguiente para
hacerlo:

#$: sudo mv mbrola-linux-i386 /usr/bin/mbrola

Hay que descargar otro archivo de la siguiente direccion
http://www.cstr.ed.ac.uk/downloads/festival/1.95/festvox_us1.tar.gz y
extraemos su contenido:

#$: tar -zxvf festvox_us1.tar.gz

Nos va a crear un directorio con varios subdirectorios dentro, nos
vamos hasta el subdirectorio festival/lib/voices/english

#$: cd festival/lib/voices/english/

Ahora copiamos el directorio us1_mbrola/ a /usr/share/festival/voices/english/

#$ sudo cp -rf * /usr/share/festival/voices/english/

Ahora extraemos los archivos del zip de voz us1

#$: unzip us1-980512.zip

Y copiamos el directorio us1 a /usr/share/festival/voices/english/us1_mbrola/

#$: sudo cp -Rf us1 /usr/share/festival/voices/english/us1_mbrola/

Hay que probar que todo va muy bien, entremos a festival y usemoslo
con esta nueva voz:

#$: festival
festival> (voice_us1_mbrola)
festival> (SayText "I am a machine, but I look like a real women")

Vamos a dejar por el momento esta voz como la predefinida:

#$: sudo gnome-text-editor /etc/festival.scm

Agregamos al final la linea:

(set! voice_default 'voice_us1_mbrola)

Lo guardamos y reiniciamos el servidor de festival:

#$: sudo /etc/init.d/festival restart

¿Que tal? Nada mal para ser una computadora, bueno ahora falta lo mas
importante, instalar la voz en español y en frances.

Aun no se como hacerle para poner la nueva voz en frances en festival
y usando mbrola, lo dejamos para otra ocasión, pero vamos a hacer otro
método, tenemos que descargar el archivo
http://download.gna.org/lliaphon/stable/lliaphon-0.4.tar.gz extraemos
el contenido, y lo instalamos:

#$: tar -zxvf lliaphon-0.4.tar.gz
#$: cd lliaphon-0.4
#$: ./configure
#$: make
#$: sudo make install

Creamos una carpeta que se llame "mbrola" en /opt

#$: sudo mkdir /opt/mbrola

Copiamos la carpeta que contiene la voz en frances que descargamos previamente.

#$: mkdir fr4
#$: mv fr4-990521.zip fr4/
#$: cd fr4
#$: unzip fr4-990521.zip
#$: sudo cp -Rf fr4 /opt/mbrola/

Creamos un archivo que se llame dire y le ponemos el siguiente contenido

#$: gnome-text-editor dire

-------------- CONTENIDO --------------
#!/bin/sh

#voix par défaut si argument 2 absent
if [ ! "$2" ]
then
DefVoice=fr4/fr4
else
DefVoice=$2
fi

MBROLA_VOICE=/opt/mbrola/$DefVoice

#tranformation du texte par lliaphon pour mbrola
echo $1 > /tmp/lliaphon_dire
/usr/local/bin/lliaphon /tmp/lliaphon_dire

/usr/bin/mbrola -I /usr/local/share/lliaphon/initfile.lia $MBROLA_VOICE /tmp/lliaphon_dire.ola -.au |
aplay -t au -

rm /tmp/lliaphon_dire
rm /tmp/lliaphon_dire.ola
-------------- FIN --------------

Lo guardamos, le cambiamos los permisos para que sea un ejecutable y
lo movemos a /usr/local/bin

#$: chmod 755 dire
#$: sudo mv dire /usr/local/bin/

Por último nos queda hacer una prueba

#$: dire "Bonjour, Au revoir"

Paquetes extras recomendables:

ksayit
kttsd
kmouth
gnopernicus

Referencias:

[En] http://www.cstr.ed.ac.uk/projects/festival/
[En] http://festvox.org
[En] http://festvox.org/voicedemos.html
[En] http://tcts.fpms.ac.be/synthesis/mbrola.html
[En] http://research.iiit.ac.in/~smr/cgi-bin/blosxom.cgi/blogs/hacking/1135586734.html
[En] http://www.speech.cs.cmu.edu/
[En] http://www.cs.cmu.edu/~awb/festival_demos/bvif.html
[En] http://www.cslu.ogi.edu/tts/
[Fr] http://www.kik-it.com/?RUB=1&debut=7
[En] http://tcts.fpms.ac.be/synthesis/mbrola.html
[En] http://download.gna.org/lliaphon/