この cronjob はどこで実行されていますか?

この cronjob はどこで実行されていますか?

CentOS 6.5 ボックスでニュース サーバーを実行しています。これはリーフノードであり、cron は 2 分ごとに実行されるように設定されています。他の問題のトラブルシューティングを行うためにこれをシャットダウンすることにしたので、crontab の次の行をコメント アウトします。

# */2 * * * * /usr/sbin/fetchnews

しかし、何らかの理由で、ニュース記事は引き続き更新されます。そこで、そのバイナリの権限を変更することにしました。

chmod 400 /usr/sbin/fetchnews

その後、2 分ごとに「/usr/sbin/fetchnews: permission denied」という電子メールが届くようになります。

/etc/cron/hourly を調べます。実際、/etc 内の crond に関係するすべてのものを調べます。root の crontab ファイルにも、news ユーザーの crontab ファイルにも、他のユーザーの crontab ファイルにも存在しません。

このバイナリが実行される原因を調べるにはどうすればよいでしょうか?

ありがとう。

答え1

試すgrep -ri fetchnews /etc/cron* /var/spool/cron/tabs/*

コメントアウトした行以外に結果はありますか?

答え2

watch "ps -ef | grep fetchnews"

は 2 秒ごとにの出力を表示しますps -ef | grep fetchnews。 の出力ではps -ef、親 pid は 3 番目のフィールド (この場合は 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 エントリがある可能性があります。ユーザー cron は、RHEL システムで次のように管理されます。

$ 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

関連情報