每日 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,如果它仍然不起作用,这可能会对调试有所帮助。

相关内容