每日 cron 作業似乎不起作用

每日 cron 作業似乎不起作用

我有一個 cron 作業,應該每天凌晨 2 點觸發 shell 腳本。

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

然而它根本不起作用。我缺什麼?

更多詳細資訊:手動運行時,腳本無需 cron 調度即可正常運行,並執行其應執行的操作。 root 使用者正在執行 cron 作業。 cron 作業是由使用者安排crontab -erootpgrep cron給予一個服務 ID,這表示 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

我的猜測是 shell 無法正確理解您的腳本,因為它沒有任何正確的 shebang。試著用crontab -e這個來代替:

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

透過使用 bash 直接呼叫腳本,腳本現在應該可以正常運作。任何輸出最終都應該被記錄下來/tmp/crontest.log,如果它仍然不起作用,這可能會對調試有所幫助。

相關內容