我在 root 下运行了几个简单的 cron 作业。但是,它们似乎运行了两次,我不知道为什么。没有其他用户运行任何 cron 作业,唯一的 cronfile 是针对 root 的。作业完成得很好,但运行了两次。
这是根 crontab 文件:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * cd / && run-parts --report /etc/cron.hourly
25 6 * * * test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
0,30 * * * * sh /scripts/amsbackup.sh
0,15,30,45 * * * * sh /scripts/dbbackup.sh
#
我确实通过退出检查了 cron 是否运行了两次,ps aux |grep cron
这里的输出表明确实有两个进程:
root 9822 0.0 0.0 2620 892 ? Ss Dec24 0:01 cron
root 19146 0.0 0.0 3904 788 pts/1 S+ 21:27 0:00 grep --color=auto cron
那么到底发生了什么事?我该如何预防?
感谢您的任何帮助。
答案1
首先,你得出有两个cron
进程的结论是错误的。你的输出结果中有两个cron
进程grep
。
接下来,您说引用的文件位于您的根 crontab 中。您引用的内容表明它位于 中。那么,这是或/etc/crontab
的内容吗?这是两个截然不同的东西。/etc/crontab
crontab -l -u root
如果是两者,那么你就是告诉它在一个地方运行这些内容,然后在另一个地方运行,所以两次。你可能想从 root 的 crontab 中删除所有内容。