这几天一直困扰我的一个问题就是我设置的自动发通知邮件的crontab到点了都自动执行三次。任务执行语句如下:
10 11 * * * /usr/local/bin/php -q /usr/local/www/apache22/data/tools/news/sendEmptyNews.php
也就是说每天的11:10分自动执行一下sendEmptyNews.php这个脚本,这个脚本的作用是自动发送一封邮件到我的邮箱。可是每次我都收到三封同样的邮件,而且是同时发送的。
今天我终于忍受不了这个问题了,决定查一查到底是什么原因,先看看是不是脚本本身的问题。我直接用/usr/local/www/apache22/data/tools/news/sendEmptyNews.php执行这个脚本,只收到一封邮件。我又写了一个很简单的脚本了测试:
<?php
$hander = fopen(‘/usr/local/www/apache22/data/tools/news/test.log’,'a+’);
fwrite($hander,date(“Y-m-d H:i:s”).”\r\n”);
fclose($hander);
?>
然后在crontab中加入
10 * * * * /usr/local/bin/php -q /usr/local/www/apache22/data/tools/news/test.php
结果log文件中记录了脚本的确执行了三次。这次可以肯定了,是crontab出了问题。
我先比较了crontab的配置文件/etc/crontab 和其他正常服务器的这个问题,发现没有问题。再查了crontab的log,/var/log/cron 发现log也记录了它只执行了一次。我这下晕了,都是正确的,结果怎么就不正确呢。
google搜索,好像没有这样的问题。
问了一下衍杰,传仁,都没有遇到这样的问题。
就在我要崩溃的时候,想到了既然是系统的问题,我何不重启一下系统试试。
更令人崩溃的事情发生了,重启了系统,再测,一切正常。无语中……
随后写下了这篇blog来记录这么一件令人极度郁闷和崩溃的事情。
最后,谢谢衍杰和传仁的帮助-_-
最新评论