0. 概述

因为我有一些任务是通过 Crontab 进行的,但是,这几天发现似乎 crontab 并没有正常运行,这里记录一下定位和修复过程。

1. 问题定位

第一步肯定是先看 crontab 的日志报的啥,这里参考之前写的一篇:Crontab使用教程 中的方式进行日志查看,然后发现错误为:

  1. [root@liqiang.io]# tailf /var/log/cron
  2. ...
  3. Feb 4 07:30:01 localhost crond[136395]: (root) FAILED to authorize user with PAM (Module is unknown)
  4. Feb 4 07:30:01 localhost crond[136393]: (root) FAILED to authorize user with PAM (Module is unknown)
  5. Feb 4 07:30:01 localhost crond[136397]: (root) PAM ERROR (Module is unknown)
  6. Feb 4 07:30:01 localhost crond[136397]: (root) FAILED to authorize user with PAM (Module is unknown)
  7. Feb 4 07:30:01 localhost crond[136396]: (root) PAM ERROR (Module is unknown)
  8. Feb 4 07:30:01 localhost crond[136396]: (root) FAILED to authorize user with PAM (Module is unknown)
  9. Feb 4 07:30:01 localhost crond[136392]: (root) PAM ERROR (Module is unknown)
  10. Feb 4 07:30:01 localhost crond[136392]: (root) FAILED to authorize user with PAM (Module is unknown)
  11. ...

那么很明显,看上去就是权限问题。于是我就把 SELinux 暂停掉,然后发现还是错误。

2. 问题解决

后面查阅资料后发现,需要设置一下 Crontab 的用户名单:

  1. [root@liqiang.io]# cat /etc/cron.allow
  2. root
  3. [root@liqiang.io]# service crond restart

添加用户之后,记得要重启一下 crontab,然后发现就正常了。

3. Ref