El trabajo cron diario no parece funcionar

El trabajo cron diario no parece funcionar

Se supone que tengo un trabajo cron que activa un script de shell diariamente a las 2 a. m.

0 2 * * * /root/bin/script.sh

Sin embargo, no funciona en absoluto. ¿Qué me estoy perdiendo?

Más detalles: el script funciona bien sin programación cron cuando se ejecuta manualmente y hace lo que se supone que debe hacer. El usuario root está ejecutando el trabajo cron. El trabajo cron fue programado por crontab -eun rootusuario. pgrep cronproporciona una identificación de servicio que significa que el servicio cron se está ejecutando. A continuación se muestra el contenido del /root/bin/script.sharchivo:

BACKUP_LOG=/var/log/backup.log
exec 1> >(while IFS= read -r line; do echo "$(date --rfc-3339 ns) $line"; done | tee -a ${BACKUP_LOG}) 2>&1

# Back up the etc directory
mkdir /home/directory1/backup/etc_backup
cp -Lrp /etc /home/data/backup/etc_backup
tar czf /home/data/backup/etc_backup.tgz
/home/data/backup/etc_backup
rm -rf /home/data/backup/etc_backup

De hecho, moví el guión de /etc/cron.daily/a /root/bin. ¿Se supone que el script debe estar disponible /etc/cron.dailysolo para ejecución diaria?

Respuesta1

Mi conjetura es que el shell no entiende correctamente su script, porque no tiene ningún tinglado adecuado. Intenta usar crontab -econ esto en su lugar:

0 2 * * * bash /root/bin/script.sh > /tmp/crontest.log 2>&1

Al invocar el script directamente usando bash, el script debería funcionar bien ahora. Cualquier salida también debería terminar registrada /tmp/crontest.log, lo que podría ayudar un poco con la depuración si aún no funciona.

información relacionada