【问题标题】:Phantom cron job after installing ssmtp for sending e-mails安装 ssmtp 以发送电子邮件后的 Phantom cron 作业
【发布时间】:2012-09-05 14:46:57
【问题描述】:

今天安装 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 -e 检查了 crontab,但两者都是空的(除了解释 cron 用法的默认 cmets)。

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

【问题讨论】:

  • 查看/etc/crontab.*/下的系统crontabs。

标签: linux cron crontab cron-task


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    在我的 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 脚本的电子邮件,请在 php 脚本行的末尾添加 &gt;/dev/null 2&gt;&amp;1

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

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

    【讨论】:

    • 添加&gt;/dev/null 2&gt;&amp;1 后我仍然收到电子邮件。所以我评论了该文件中的行,没有更多的电子邮件!
    猜你喜欢
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 2012-06-28
    • 2016-09-13
    相关资源
    最近更新 更多