Crontab 各种运行不成功和解决方法

Crontab是一个运行定时脚本的工具,我在这里翻车了n次,记录一下debug过程。

常用命令

1
2
3
4
service cron status # 查看运行状态和报错信息
service cron reload # 重新载入
service cron restart # 重启
vim /etc/crontab #编辑 crontab

Debug

Missing newline before EOF

报错内容:

1
(*system*) ERROR (Missing newline before EOF, this crontab file will be ignored)

解决方案

Correct this error simply by adding a blank line at the end of your crontab.

就是在crontab文件的末尾添加一个新的空行(回车),就离谱……

session opened for user root by (uid=0)

报错内容:

1
pam_unix(cron:session): session opened for user root by (uid=0)

解决方案

打开文件:

1
vim /etc/pam.d/common-session-noninteractive

找到这一行:

1
session required pam_unix.so

并在其上方添加:

1
session [success=1 default=ignore] pam_succeed_if.so service in cron quiet use_uid

然后重启:

1
service cron restart