我有一个 Linux gentoo 系统,每天凌晨 3:10 执行一个 cronjob。但是,没有文件包含/etc
与此特定 cronjob 相关的任何信息,并且结果crontab -l
是
# check scripts in cron.hourly, cron.daily, cron.weekly and cron.monthly
MAILTO=""
0 * * * * rm -f /var/spool/cron/lastrun/cron.hourly
1 3 * * * rm -f /var/spool/cron/lastrun/cron.daily
15 4 * * 6 rm -f /var/spool/cron/lastrun/cron.weekly
30 5 1 * * rm -f /var/spool/cron/lastrun/cron.monthly
*/10 * * * * test -x /usr/sbin/run-crons && /usr/sbin/run-crons
该目录/etc/cron.daily
可能包含有问题的作业,但时间是在 3:01!这是为什么?实际的 cronjobn 是否存储在其他地方? gentoo需要9分钟才能实现执行一项工作吗?
附加信息:
- 我在 13:20 有一个不同的 crontab 作业(在 cron.d 中),它在每天 13:20 准确执行。
答案1
检查它是否不是来自其他用户:
getent passwd | while read r; do sudo -u $(echo $r | cut -d':' -f1) crontab -l; done
答案2
crontab -l
仅列出调用用户的每用户 crontab。还有一个系统 crontab,它只能由 root 编辑,但可以以任何用户身份运行作业。系统 crontab 位于该文件中/etc/crontab
,其他作业则位于该目录中的文件中/etc/cron.d
。
目录/etc/cron.daily
、/etc/cron.weekly
和/etc/cron.monthly
不是由 cron 内置的,而是由 中列出的作业遍历/etc/crontab
。