[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

RE: Problema con cron y script



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:fjbejarano@gmail.com]
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         root    time
/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 ddmmyyyyHHMM
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
fjbejarano@gmail.com
----------------------------------------------------------------



Reply to: