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

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

CentOS 6.5システムで動作するニュースサーバーがあります。これはリーフノードで、cronは2分ごとに実行されるように設定されています。他の問題を解決するためにこの機能をオフにすることにしたので、crontabで次の行をコメントアウトしました。

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

しかし、何らかの理由で、我々はまだニュース記事を更新しています。だから私たちはこのバイナリの権限を変更することにしました。

chmod 400 /usr/sbin/fetchnews

その後、2分ごとに「/usr/sbin/fetchnews:権限が拒否されました」というメールが届き始めました。

実際には、crondに関連する/ etcのすべての内容である/ etc / cron / hourlyを見ていきます。ルートのcrontabファイル、ニュースユーザーのcrontabファイル、他のユーザーのcrontabファイルにはありません。

このバイナリが実行される原因をどのように知ることができますか?

ありがとうございます。

答え1

努力するgrep -ri fetchnews /etc/cron* /var/spool/cron/tabs/*

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

答え2

watch "ps -ef | grep fetchnews"

ps -ef | grep fetchnews2秒ごとに出力が表示されます。出力では、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

関連情報