我有一个 cron,用于每分钟检查是否有待发送的邮件:
*/1 * * * * /usr/bin/curl http://localhost/path/application.php >> /var/log/application.log
这个脚本已经运行多年了,没有出现任何问题。昨天我echo
在文件的第一行添加了一个application.php
,并得到了以下日志:
10:34:05 Launching application...
10:34:17 Launching application...
10:34:44 Launching application...
10:35:07 Launching application...
10:35:18 Launching application...
10:35:43 Launching application...
10:35:58 Launching application...
....
是的,该脚本每分钟启动3/4次。
我的根 crontab 只包含上述行,而我使用的唯一用户的 crontab 为空。没有其他计算机可以访问我的localhost
服务器(我已仔细检查过它是否已隔离)。
为了检查问题是否出在 root cron 上,我注释掉了唯一的 crontab 行,结果,惊喜!生成了类似的日志。
所以问题是:发生了什么事? 是否有任何 cron 日志或类似内容?
答案1
我几乎确信你需要的是
/etc/init.d/cron reload
答案2
您需要进一步查看,在许多系统上,cron 条目“隐藏”在 /etc/cron.d 目录下。
您也需要检查这些。
答案3
有几个地方可以列出 cron 条目。你可以输入以下命令来搜索它:
grep "application.php" /var/spool/cron/crontabs/* /etc/crontab /etc/cron.*/*
这必须以 root 权限运行,因此sudo
如果您使用的是 Ubuntu 或类似系统,请在其前面加上前缀。
cron 日志记录由 Syslog 控制。(除非您恰好拥有 syslog-ng,它有稍微不同的控制方式,)您可能再次知道grep
cron 的记录位置。
grep -i 'cron' /etc/*syslog.*/* /etc/*syslog.*
/var/log/cron.log
是最明显的选择。
希望这能帮助您前进。