El script no hace lo que debería cuando se ejecuta con cron

El script no hace lo que debería cuando se ejecuta con cron

Tengo algún problema. Tengo programada la ejecución del script pero cuando llega el momento no pasa nada.

 #!/bin/sh
 TIME=`date +"%d-%m-%Y"`
 cd /var/www/flyer/data/www/
 mysqldump -u root -ppasswd --databases db_name --create-options --default- character-set=utf8 --result-file=dump.sql
 FILENAME="backup_$TIME.tar.gz"
 tar -cpzf ../backups/$FILENAME somefolder dump.sql  
 rm dump.sql
 chown flyer:flyer ../backups/$FILENAME
 chmod 666 ../backups/$FILENAME

Cuando ejecuto el script directamente desde ssh como /root/backup.sh, todo funciona como se supone que debe hacerlo. Pero cuando se ejecuta mediante cron, no pasa nada. grep CRON /var/log/syslogmuestra que se ejecutó (19 de diciembre 01:21:01 vps-8463 /USR/SBIN/CRON[1299]: (root) CMD (sh /root/backup.sh >/dev/null 2>&1) ) pero no Se crea el archivo. Tarea cron: 21 1 * * * sh /root/backup.sh >/dev/null 2>&1
¿Alguna idea de por qué sucede esto?

Respuesta1

Mi primera suposición es que el comando mysqldump no está en la ruta cuando cron ejecuta el script. Intentar:

which mysqldump

Tome el resultado de eso y sustituya la ruta completa por el nombre del comando. Por ejemplo: /usr/bin/mysqldumpen lugar demysqldump

O agregue algo a una variable PATH local. P.ej: PATH=$PATH:/usr/bin

Esto también solucionará problemas si tar, chownu otros comandos no están en la ruta predeterminada.

información relacionada