Задание Phantom cron после установки ssmtp для отправки электронной почты

Сегодня после установки 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.

Я проверил crontab с помощью crontab -e в своей учетной записи root и в обычной учетной записи, но обе пусты (за исключением комментариев по умолчанию, объясняющих использование cron).

Есть ли другой способ проверить, где выполняется это задание cron?


person rfc1484    schedule 12.09.2012    source источник
comment
Проверьте системные crontabs под /etc/crontab.*/.   -  person epsalon    schedule 12.09.2012


Ответы (2)


в моем Linux-боксе следующие каталоги могут содержать сценарии cron, которые будут запускаться:

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

и, более конкретно, я нашел тот же скрипт cron php также в моем Linux-боксе, поскольку у меня установлен 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-скрипт не отправляет электронное письмо, его отправляет демон cron, который запускает этот php-скрипт. Это происходит потому, что скрипт выводит какую-то ошибку, и cron отправляет электронное письмо пользователю root, чтобы сообщить об этом. Из-за установки ssmtp письма, отправленные на root, попадают к вам.

Чтобы cron не отправлял электронные письма об этом php-скрипте, добавьте >/dev/null 2>&1 в конце строки php-скрипта.

Затем перезапустите cron с помощью /etc/init.d/crond restart

Это должно помешать cron снова спамить вас :-).

person Nelson    schedule 12.09.2012
comment
После добавления >/dev/null 2>&1 мне по-прежнему приходят электронные письма. Итак, я прокомментировал строку в этом файле и больше никаких писем! - person rfc1484; 13.09.2012

В обязательных дистрибутивах Linux вы найдете каталог /var/spool/cron с файлом или каталогом для каждого пользователя, у которого есть настройка задания cron. Я бы начал с поиска работы фантомного cron.

person Lipongo    schedule 12.09.2012