Re: Problema con cron y script

2007-07-30 Por tema Francisco José Bejarano
On 7/30/07, Antonio Galicia <[EMAIL PROTECTED]> wrote:
> On 7/27/07, Francisco José Bejarano <[EMAIL PROTECTED]> wrote:
>
> > El problema viene cuando se ejecuta con cron, hace todo pero al
> > comprimir no incluye ningún archivo, es decir, genera el tar.bz2
> > vacio, pero todo lo demas lo hace bien.
>
>  De esto ...
>
> > dir_mnt="/mnt/samba/admin"  #Directorio de Montaje de la carpeta
> > del servidor samba
> > dir_bck_local="/root/bck_web"   #Directorio de copia de seguridad local
> > dir_bck="$dir_mnt/bck_web"  #Directorio remoto de copia de seguridad
> >
> > # Hacemos una copia de seguridad de la bbdd de mysql
> > mysqlhotcopy -u root -p password --allowold --keepold basededatos 
> > $dir_bck_local
>
>  Según el man no debe haber espacio entre -p y el password pero ya
> viendo el scrip sí está permitido el espacio. Y como recomendación no
> pases el pases por la línea de comando, mejor ponla en my.cnf y
> agregas los permisos necesarios.

pues lleva funcionando con el espacio desde siempre, de hecho, en el
man no viene que no deba haber espacio. En cuanto a lo de usarlo en
my.cnf puede que sea mejor si :-)

>
> > # Creamos un tar.bz2 finalizado con la hora y fecha en formato ddmmHHMM
> > tar cfj $dir_bck_local/db_basededatos_`date +%Y%m%d%H%M`.tar.bz2
> > $dir_bck_local/basededatos
>
>  ¿Existe el archivo "$dir_bck_local/basededatos" después de este
> proceso? Puede que el problema de que no incluya el archivo sea que no
> exista el archivo.

No es un archivo, es el directorio de la base de datos que crea
mysqlhotcopy. El directorio existe.

>
> > #Eliminamos los archivos comprimidos del directorio origen de copia de 
> > seguridad
> > rm -R $dir_bck_local/db_basededatos_*
>
>  Ya no entendí. ¿cómo se llama el archivo que vas a respaldar? En un
> lugar se llama "basededatos" y ahora es "basededatos_*".

basededatos es el directorio generado por mysqlhotcopy y
db_basededatos_* es el fichero tar.bz2 que se genera al comprimir y
que al copiarlo a otro lugar no es necesario que siga ahí.

De todas formas, el script es correcto, el problema está en la tarea del cron.

>
> --
>  Saludos,
>  Toño

Saludos

> 
>  http://agc.com.mx/antoniogc/blog
>


-- 
---
Francisco J. Bejarano
[EMAIL PROTECTED]




Re: Problema con cron y script

2007-07-30 Por tema Antonio Galicia
On 7/27/07, Francisco José Bejarano <[EMAIL PROTECTED]> wrote:

> El problema viene cuando se ejecuta con cron, hace todo pero al
> comprimir no incluye ningún archivo, es decir, genera el tar.bz2
> vacio, pero todo lo demas lo hace bien.

 De esto ...

> dir_mnt="/mnt/samba/admin"  #Directorio de Montaje de la carpeta
> del servidor samba
> dir_bck_local="/root/bck_web"   #Directorio de copia de seguridad local
> dir_bck="$dir_mnt/bck_web"  #Directorio remoto de copia de seguridad
>
> # Hacemos una copia de seguridad de la bbdd de mysql
> mysqlhotcopy -u root -p password --allowold --keepold basededatos 
> $dir_bck_local

 Según el man no debe haber espacio entre -p y el password pero ya
viendo el scrip sí está permitido el espacio. Y como recomendación no
pases el pases por la línea de comando, mejor ponla en my.cnf y
agregas los permisos necesarios.

> # Creamos un tar.bz2 finalizado con la hora y fecha en formato ddmmHHMM
> tar cfj $dir_bck_local/db_basededatos_`date +%Y%m%d%H%M`.tar.bz2
> $dir_bck_local/basededatos

 ¿Existe el archivo "$dir_bck_local/basededatos" después de este
proceso? Puede que el problema de que no incluya el archivo sea que no
exista el archivo.

> #Eliminamos los archivos comprimidos del directorio origen de copia de 
> seguridad
> rm -R $dir_bck_local/db_basededatos_*

 Ya no entendí. ¿cómo se llama el archivo que vas a respaldar? En un
lugar se llama "basededatos" y ahora es "basededatos_*".

-- 
 Saludos,
 Toño

 http://agc.com.mx/antoniogc/blog



Re: Problema con cron y script

2007-07-30 Por tema Francisco José Bejarano
On 7/27/07, Francisco José Bejarano <[EMAIL PROTECTED]> wrote:
> On 7/27/07, gbueno <[EMAIL PROTECTED]> wrote:
> > Buenas, soy muy nuevo en esto del linux pero si le agregas el -v al tar y te
> > fijas si acusa algun error ??
> >
> > /bin/tar -vcfj $dir_bck_local/db_basededatos_`date +%Y%m%d%H%M`.tar.bz2
> > $dir_bck_local/basededatos
> >
> >
> > Saludos y disculpas si estoy diciendo una burrada...
>
>
> Si, ya lo he puesto para ver y no me da error, de hecho, he ejecutado
> los comandos en el directorio, es decir, mysqlhotcopy y despues el tar
> con el directorio creado y funciona perfectamente. Es solo cuando cron
> lanza el script cuando falla el tar.
>
> He puesto la directiva MAILTO="micorreoelectronico" en el crontab para
> ver si me envia la salida de los comandos pero no me envia nada al
> correo.
>
>
> >
> >
> > -Mensaje original-
> > De: Francisco José Bejarano [mailto:[EMAIL PROTECTED]
> > Enviado el: Viernes, 27 de Julio de 2007 07:30
> > Para: Linux_Debian_Esp_usr
> > Asunto: Problema con cron y script
> >
> >
> > Hola
> >
> > Estoy usando cron para que ejecute unas tareas de copias de seguridad
> > y tengo un problema al ejecutar un script mediante el.
> >
> > El script hace una copia de seguridad de una base de datos de mysql y
> > despues la comprime y la copia a un servidor remoto.
> >
> > El caso es que cuando ejecuto el script como root desde la linea de
> > comandos, hace todo perfectamente. Genera la copia de seguridad de
> > mysql, la copia al directorio correspondiente, comprime los datos y
> > los copia al servidor remoto.
> >
> > El problema viene cuando se ejecuta con cron, hace todo pero al
> > comprimir no incluye ningún archivo, es decir, genera el tar.bz2
> > vacio, pero todo lo demas lo hace bien.
> >
> > ¿Alguien sabe que puede pasar? Os pongo:
> >
> > Tarea en /etc/crontab:
> > # Ejecutar el script de copia de seguridad de la base de datos mysql
> > 0 20* * 1-5 roottime
> > /root/bck_web/scripts/db_backup.sh && echo -e "\n\nBCK_BBDD OK"
> >
> > Como veis es el usuario root el que lo ejecuta, así que debería funcionar.
> >
> > Os pongo el script
> >
> > ##
> > #!/bin/bash
> > # Autor: Francisco J. Bejarano
> > # Fecha Mod: 26/07/2007
> > # Nombre: db_backup.sh
> > # Script de copia de seguridad de las bases de datos MySQL del servidor
> > # El directorio de las bases de datos MySQL en GNU/Linux basado en Debian
> > # es /var/lib/mysql/egroupware.
> >
> > dir_mnt="/mnt/samba/admin"  #Directorio de Montaje de la carpeta
> > del servidor samba
> > dir_bck_local="/root/bck_web"   #Directorio de copia de seguridad local
> > dir_bck="$dir_mnt/bck_web"  #Directorio remoto de copia de seguridad
> >
> > # Hacemos una copia de seguridad de la bbdd de mysql
> > mysqlhotcopy -u root -p password --allowold --keepold basededatos
> > $dir_bck_local
> >
> > # Creamos un tar.bz2 finalizado con la hora y fecha en formato ddmmHHMM
> > tar cfj $dir_bck_local/db_basededatos_`date +%Y%m%d%H%M`.tar.bz2
> > $dir_bck_local/basededatos
> >
> >
> > # Montamos la carpeta del servidor remoto samba en el directorio local.
> > mount $dir_mnt
> >
> > # Copiamos del directorio origen al directorio del bck
> > cp -R $dir_bck_local/db_basededatos_*.bz2 $dir_bck
> > ls -lah $dir_bck
> >
> > # Desmontamos la carpeta del servidor samba
> > umount $dir_mnt
> >
> > #Eliminamos los archivos comprimidos del directorio origen de copia de
> > seguridad
> > rm -R $dir_bck_local/db_basededatos_*
> >
> > #
> >
> > Lo único que se me ocurre es que se necesite algún permiso para algún
> > usuario al ejecutarse con cron que no permita copiar o mejor dicho
> > comprimir el directorio basededatos creado con el comando
> > mysqlhotcopy. Este directorio se crea con usuario:grupo mysql y con
> > permisos 750 desde mysqlhotcopy.
> >
> > El script tiene permisos 755 para el usuario y grupo root.
> >
> > He probado a añadir la linea
> >
> > chmod -r 755 $dir_bck_local/basededatos
> >
> > antes de realizar la compresion pero nada. De todas formas, no debería
> > ser eso puesto que puedo ejecutarlo con ./db_backup.sh como root y
> > funciona todo...
> >

RE: Problema con cron y script

2007-07-27 Por tema gbueno
Buenas, soy muy nuevo en esto del linux pero si le agregas el -v al tar y te
fijas si acusa algun error ??

/bin/tar -vcfj $dir_bck_local/db_basededatos_`date +%Y%m%d%H%M`.tar.bz2
$dir_bck_local/basededatos


Saludos y disculpas si estoy diciendo una burrada...


-Mensaje original-
De: Francisco José Bejarano [mailto:[EMAIL PROTECTED]
Enviado el: Viernes, 27 de Julio de 2007 07:30
Para: Linux_Debian_Esp_usr
Asunto: Problema con cron y script


Hola

Estoy usando cron para que ejecute unas tareas de copias de seguridad
y tengo un problema al ejecutar un script mediante el.

El script hace una copia de seguridad de una base de datos de mysql y
despues la comprime y la copia a un servidor remoto.

El caso es que cuando ejecuto el script como root desde la linea de
comandos, hace todo perfectamente. Genera la copia de seguridad de
mysql, la copia al directorio correspondiente, comprime los datos y
los copia al servidor remoto.

El problema viene cuando se ejecuta con cron, hace todo pero al
comprimir no incluye ningún archivo, es decir, genera el tar.bz2
vacio, pero todo lo demas lo hace bien.

¿Alguien sabe que puede pasar? Os pongo:

Tarea en /etc/crontab:
# Ejecutar el script de copia de seguridad de la base de datos mysql
0 20* * 1-5 roottime
/root/bck_web/scripts/db_backup.sh && echo -e "\n\nBCK_BBDD OK"

Como veis es el usuario root el que lo ejecuta, así que debería funcionar.

Os pongo el script

##
#!/bin/bash
# Autor: Francisco J. Bejarano
# Fecha Mod: 26/07/2007
# Nombre: db_backup.sh
# Script de copia de seguridad de las bases de datos MySQL del servidor
# El directorio de las bases de datos MySQL en GNU/Linux basado en Debian
# es /var/lib/mysql/egroupware.

dir_mnt="/mnt/samba/admin"  #Directorio de Montaje de la carpeta
del servidor samba
dir_bck_local="/root/bck_web"   #Directorio de copia de seguridad local
dir_bck="$dir_mnt/bck_web"  #Directorio remoto de copia de seguridad

# Hacemos una copia de seguridad de la bbdd de mysql
mysqlhotcopy -u root -p password --allowold --keepold basededatos
$dir_bck_local

# Creamos un tar.bz2 finalizado con la hora y fecha en formato ddmmHHMM
tar cfj $dir_bck_local/db_basededatos_`date +%Y%m%d%H%M`.tar.bz2
$dir_bck_local/basededatos


# Montamos la carpeta del servidor remoto samba en el directorio local.
mount $dir_mnt

# Copiamos del directorio origen al directorio del bck
cp -R $dir_bck_local/db_basededatos_*.bz2 $dir_bck
ls -lah $dir_bck

# Desmontamos la carpeta del servidor samba
umount $dir_mnt

#Eliminamos los archivos comprimidos del directorio origen de copia de
seguridad
rm -R $dir_bck_local/db_basededatos_*

#

Lo único que se me ocurre es que se necesite algún permiso para algún
usuario al ejecutarse con cron que no permita copiar o mejor dicho
comprimir el directorio basededatos creado con el comando
mysqlhotcopy. Este directorio se crea con usuario:grupo mysql y con
permisos 750 desde mysqlhotcopy.

El script tiene permisos 755 para el usuario y grupo root.

He probado a añadir la linea

chmod -r 755 $dir_bck_local/basededatos

antes de realizar la compresion pero nada. De todas formas, no debería
ser eso puesto que puedo ejecutarlo con ./db_backup.sh como root y
funciona todo...

En fin nose, a ver si me decis algo.

Gracias de antemano

--
---
Francisco J. Bejarano
[EMAIL PROTECTED]



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Problema con cron y script

2007-07-27 Por tema Francisco José Bejarano
Hola

Estoy usando cron para que ejecute unas tareas de copias de seguridad
y tengo un problema al ejecutar un script mediante el.

El script hace una copia de seguridad de una base de datos de mysql y
despues la comprime y la copia a un servidor remoto.

El caso es que cuando ejecuto el script como root desde la linea de
comandos, hace todo perfectamente. Genera la copia de seguridad de
mysql, la copia al directorio correspondiente, comprime los datos y
los copia al servidor remoto.

El problema viene cuando se ejecuta con cron, hace todo pero al
comprimir no incluye ningún archivo, es decir, genera el tar.bz2
vacio, pero todo lo demas lo hace bien.

¿Alguien sabe que puede pasar? Os pongo:

Tarea en /etc/crontab:
# Ejecutar el script de copia de seguridad de la base de datos mysql
0 20* * 1-5 roottime
/root/bck_web/scripts/db_backup.sh && echo -e "\n\nBCK_BBDD OK"

Como veis es el usuario root el que lo ejecuta, así que debería funcionar.

Os pongo el script

##
#!/bin/bash
# Autor: Francisco J. Bejarano
# Fecha Mod: 26/07/2007
# Nombre: db_backup.sh
# Script de copia de seguridad de las bases de datos MySQL del servidor
# El directorio de las bases de datos MySQL en GNU/Linux basado en Debian
# es /var/lib/mysql/egroupware.

dir_mnt="/mnt/samba/admin"  #Directorio de Montaje de la carpeta
del servidor samba
dir_bck_local="/root/bck_web"   #Directorio de copia de seguridad local
dir_bck="$dir_mnt/bck_web"  #Directorio remoto de copia de seguridad

# Hacemos una copia de seguridad de la bbdd de mysql
mysqlhotcopy -u root -p password --allowold --keepold basededatos $dir_bck_local

# Creamos un tar.bz2 finalizado con la hora y fecha en formato ddmmHHMM
tar cfj $dir_bck_local/db_basededatos_`date +%Y%m%d%H%M`.tar.bz2
$dir_bck_local/basededatos


# Montamos la carpeta del servidor remoto samba en el directorio local.
mount $dir_mnt

# Copiamos del directorio origen al directorio del bck
cp -R $dir_bck_local/db_basededatos_*.bz2 $dir_bck
ls -lah $dir_bck

# Desmontamos la carpeta del servidor samba
umount $dir_mnt

#Eliminamos los archivos comprimidos del directorio origen de copia de seguridad
rm -R $dir_bck_local/db_basededatos_*

#

Lo único que se me ocurre es que se necesite algún permiso para algún
usuario al ejecutarse con cron que no permita copiar o mejor dicho
comprimir el directorio basededatos creado con el comando
mysqlhotcopy. Este directorio se crea con usuario:grupo mysql y con
permisos 750 desde mysqlhotcopy.

El script tiene permisos 755 para el usuario y grupo root.

He probado a añadir la linea

chmod -r 755 $dir_bck_local/basededatos

antes de realizar la compresion pero nada. De todas formas, no debería
ser eso puesto que puedo ejecutarlo con ./db_backup.sh como root y
funciona todo...

En fin nose, a ver si me decis algo.

Gracias de antemano

-- 
---
Francisco J. Bejarano
[EMAIL PROTECTED]