Ежедневное задание cron, похоже, не работает

Ежедневное задание cron, похоже, не работает

У меня есть задание cron, которое должно запускать скрипт оболочки ежедневно в 2 часа ночи.

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

Однако это вообще не работает. Что я упускаю?

Дополнительные сведения: Скрипт отлично работает без планирования cron при ручном запуске и делает то, что должен делать. Пользователь root запускает задание cron. Задание cron было запланировано пользователем crontab -eas root. pgrep cronдает идентификатор службы, который означает, что служба cron запущена. Ниже приведено содержимое файла /root/bin/script.sh:

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

На самом деле я переместил скрипт из /etc/cron.daily/в /root/bin. Скрипт должен быть /etc/cron.dailyтолько для ежедневного выполнения?

решение1

Я предполагаю, что ваш скрипт не понимается оболочкой должным образом, поскольку в нем нет правильного shebang. Попробуйте использовать crontab -eэто вместо этого:

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

Вызов скрипта напрямую с помощью bash должен теперь работать нормально. Любой вывод должен /tmp/crontest.logтакже быть записан в журнал, что может немного помочь с отладкой, если он все еще не работает.

Связанный контент