
У нас есть сервер новостей, работающий на CentOS 6.5 box. Это leafnode, и cron настроен на запуск каждые две минуты. Мы решаем отключить его, чтобы устранить другие неполадки, поэтому мы закомментируем строку в crontab:
# */2 * * * * /usr/sbin/fetchnews
Однако по какой-то причине мы все еще получаем обновленные новостные статьи. Поэтому мы решили изменить разрешения этого двоичного файла.
chmod 400 /usr/sbin/fetchnews
Затем каждые две минуты мы начинаем получать электронные письма следующего содержания: «/usr/sbin/fetchnews: разрешение отклонено».
Мы смотрим в /etc/cron/hourly, фактически во всём, что связано с crond в /etc. Его нет в файле crontab пользователя root, его нет в файле crontab пользователя news и его нет в файле crontab любого другого пользователя.
Как узнать, что является причиной запуска этого двоичного файла?
Спасибо.
решение1
Пытаться grep -ri fetchnews /etc/cron* /var/spool/cron/tabs/*
.
Есть ли еще какие-нибудь результаты, кроме закомментированной вами строки?
решение2
watch "ps -ef | grep fetchnews"
покажет вам вывод ps -ef | grep fetchnews
каждые две секунды. В выводе ps -ef
родительский pid — это третье поле, в данном случае 1458:
ulmi 1462 1458 0 18:20 pts/1 00:00:00 sh -c ps -ef | grep ls
Именно эта работа породила ваш fetchnews, и она может вам помочь в дальнейшем.
(Мой хрустальный шар подсказывает, что, возможно, вы пытались редактировать файлы crontab напрямую? Только запуск crontab -e
гарантированно заставит crond
открыть новую вкладку.)
решение3
Если предположить, что есть пользователь, которому принадлежат файлы новостей, то, скорее всего, в его персональном файле crontab есть запись cron, которая за это отвечает. В системах RHEL cron пользователей поддерживаются здесь:
$ sudo ls -l /var/spool/cron/
total 4
-rw-------. 1 slm slm 9 Oct 6 13:30 slm
Если вы видите там записи, вы можете использовать их sudo
для просмотра содержимого данного файла, например, так:
$ sudo crontab -u slm -l
### blah
Вы можете просто закомментировать записи в этом файле, используя , crontab
чтобы отключить его запуск. Если ваша работа довольно короткая, вы также можете временно отключить службу cron:
$ sudo service crond stop