Hola, estoy tratando de organizar los backups de mis bases (se aceptan todo tipo de recomendaciones).
El tema es que tengo un script que realiza el backup de una base. Lo corro desde la linea de comandos, y anda perfecto. Pero cuando lo programo en el cron, se ejecuta y me crea una base vacia.
Ahi dejo el script.
Es muy comun que los comandos de scheduleados via cron fallen porque el enviroment no es el adecuado, por favor agregale al script que dispara el backup un env > /tmp/env.txt asi vemos q tenes en el enviroment al momento de ejecutar el backup desde el cron y por favor mandame el env.txt
recibi los 2 environments, en principio lo unico diferente q esta molestando es el PATH, asi que por favor pone una linea como la siguiente antes del env y probemos el script desde el cron
En mi caso, cuando hice mi script de backup, fue necesario ademas de agregarles as varialbes de entorno correspondientes, ponerles ademas el path completo a cualquier comando externo que necesitara.
Les paso el script que al dia de hoy corremos 10 veces para guardar los backups. Espero que sirva
Saludos!
#!/bin/bash
PATH="/bin:/usr/bin:/sbin:/usr/sbin:/var/cron_db_backups:/bin/bash"
FILEPATH='<path_a_guardar>'
FILE_PREFIX='backupDB_'
if [ ! -d "$FILEPATH" ]; then
mkdir $FILEPATH
fi
VALUE=`eval date +%m"_"%d"_"%H":"%M`
#FILENAME="/root/cron_db_backups/backupDB_$VALUE.sql"
FILENAME="$FILEPATH$FILE_PREFIX$VALUE.sql"
# Contamos la cantidad de archivos de backup
FILE_COUNT=$(ls -l $FILEPATH | grep $FILE_PREFIX |wc -l)
#Si Tenemos mas de 5 archivos, borramos el mas viejo
if [ $FILE_COUNT -gt 5 ]; then
echo 'Demasiados archivos de backup, se borra el mas viejo'
OLDEST_FILENAME=$(ls $FILEPATH$FILE_PREFIX* | sort -n -t _ -k 2 )
OLDEST_FILENAME=$(echo $OLDEST_FILENAME | awk '{print $1;}')
rm $OLDEST_FILENAME
fi
# Hacemos el dump de la base de datos
echo 'Haciendo dump de la base'
/usr/bin/pg_dump --host localhost --port xxxx --username <usuario_guarani> --file $FILENAME <base_de_guarani>
# Gzipeamos la base para no llenar la VM
echo "Comprimiendo el backup con gzip"
/bin/gzip $FILENAME
P.D: Obviamente los campos <***> los tenes que cambiar por tus valores