为什么 cron 无法完成我的脚本?

为什么 cron 无法完成我的脚本?

我有一个备份脚本(通过 ssh 进行 rsync),由 cron 运行(在 /etc/crontab 中配置)

0 2   * * *   root    /bin/bash --login /opt/aebackup/sshbackup.sh

如果我以 root 身份登录运行它,如下所示,它运行得非常好。

root@server:~# /opt/aebackup/sshbackup.sh

如果我通过 cron 运行它,它会在一段时间后停止(并不总是在脚本中的同一个任务上......它看起来很随机,就像进程在某个时候被随机终止一样)

有人知道为什么我的 cron 会这样做吗?谢谢你的一切...我很绝望!

答案1

旧 cron 中有一个错误,有关解释请参阅此启动板条目

答案2

如果你对输出不感兴趣,你可以直接附加到你的命令>/dev/null 2>&1...这样它就变成了

 0 2   * * *   root    /bin/bash --login /opt/aebackup/sshbackup.sh > /dev/null 2>&1

这样它应该可以正常工作,即使它只是解决该错误的一种方法。

答案3

答案可能在 cron 的日志输出中。

默认情况下处于/var/log/syslog开启状态。

但可以设置为创建一个单独的cron.log,这更有用。

此问答描述了该过程:

16.04:如何让 cron 创建 cron.log 并实时监控它?

此答案中还提供了创建命令的说明wcron,该命令显示它是近乎实时的。此外,它链接到另一个答案,

如何更改 cron 日志级别?

这显示了如何更改日志级别以包含不仅仅是作业的开始 - 级别 15 还将显示错误和结束时间。

相关内容