0. 概述
因为我有一些任务是通过 Crontab 进行的,但是,这几天发现似乎 crontab 并没有正常运行,这里记录一下定位和修复过程。
1. 问题定位
第一步肯定是先看 crontab 的日志报的啥,这里参考之前写的一篇:Crontab使用教程 中的方式进行日志查看,然后发现错误为:
[root@liqiang.io]# tailf /var/log/cron
...
Feb 4 07:30:01 localhost crond[136395]: (root) FAILED to authorize user with PAM (Module is unknown)
Feb 4 07:30:01 localhost crond[136393]: (root) FAILED to authorize user with PAM (Module is unknown)
Feb 4 07:30:01 localhost crond[136397]: (root) PAM ERROR (Module is unknown)
Feb 4 07:30:01 localhost crond[136397]: (root) FAILED to authorize user with PAM (Module is unknown)
Feb 4 07:30:01 localhost crond[136396]: (root) PAM ERROR (Module is unknown)
Feb 4 07:30:01 localhost crond[136396]: (root) FAILED to authorize user with PAM (Module is unknown)
Feb 4 07:30:01 localhost crond[136392]: (root) PAM ERROR (Module is unknown)
Feb 4 07:30:01 localhost crond[136392]: (root) FAILED to authorize user with PAM (Module is unknown)
...
那么很明显,看上去就是权限问题。于是我就把 SELinux 暂停掉,然后发现还是错误。
2. 问题解决
后面查阅资料后发现,需要设置一下 Crontab 的用户名单:
[root@liqiang.io]# cat /etc/cron.allow
root
[root@liqiang.io]# service crond restart
添加用户之后,记得要重启一下 crontab,然后发现就正常了。