[SOLUCIONADO] Problemas con Cron, me crea un Backup vacio

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.


backup_muni.txt (224 Bytes)

Hola

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

saludos
Ignacio

Gustavo,

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

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/PostgreSQL/9.2/bin/:/opt/PostgreSQL/9.2/data

saludos
Ignacio

Hola

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

Bueno , agregando el PATH funciono perfecto!
Gracias

PD: fgimenez , gracias por ej. tambien.