2

今天安装 ssmtp 以使用终端发送电子邮件后,我每半小时收到一封电子邮件:

from:    root <myuser>@gmail.com
to:  root
date:    Wed, Sep 12, 2012 at 2:09 PM
subject:     Cron <root@127> [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete
mailed-by:   gmail.com

content: PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626/memcached.so' - /usr/lib/php5/20090626/memcached.so: cannot open shared object file: No such file or directory in Unknown on line 0

这些是从我自己的计算机发送的,就像设置了 cron 作业一样。

但我找不到任何计划中的 cron 工作。

我在我的 root 帐户和普通帐户中检查了 crontab crontab -e,但两者都是空的(解释 cron 用法的默认注释除外)。

有没有其他方法可以检查这个 cron 作业的执行位置?

4

2 回答 2

3

在我的 linux 机器上,以下目录都可以包含将运行的 cron 脚本:

/etc/cron.d/
/etc/cron.daily/
/etc/cron.hourly/  
/etc/cron.monthly/ 
/etc/cron.weekly/

更具体地说,我在我的 linux 盒子中也发现了你相同的 cron php 脚本,因为我安装了 php,在这里找到它:

cat /etc/cron.d/php5

# /etc/cron.d/php5: crontab fragment for php5
#  This purges session files older than X, where X is defined in seconds
#  as the largest value of session.gc_maxlifetime from all your php.ini
#  files, or 24 minutes if not defined.  See /usr/lib/php5/maxlifetime

# Look for and purge old sessions every 30 minutes
09,39 *     * * *     root   [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -n 200 -r -0 rm

php 脚本不发送电子邮件,运行该 php 脚本的 cron 守护程序会发送它。这样做是因为脚本输出了一些错误,并且 cron 向 root 发送了一封电子邮件以通知该错误。因为安装了 ssmtp 发送到 root 的邮件给你。

要使 cron 不发送有关该 php 脚本的电子邮件,请>/dev/null 2>&1在 php 脚本行的末尾添加。

然后重启cron/etc/init.d/crond restart

这应该可以防止 cron 再次向您发送垃圾邮件:-)。

于 2012-09-12T14:47:07.420 回答
2

在必须的 linux 发行版中,您将找到一个 /var/spool/cron 目录,其中包含每个具有 cron 作业设置的用户的文件或目录。我会从那里寻找幻影 cron 工作开始。

于 2012-09-12T14:41:33.597 回答