web-dev-qa-db-ja.com

cronジョブが実行されたかどうかを確認するにはどうすればよいですか?

私はこの質問を正しく聞いているといいのですが。サーバーで設定されているすべてのジョブをnano /etc/crontabで実行しようとしています。次のリストが表示されます。

# m h dom mon dow user  command
27 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
58 15    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
0 15    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
20 15    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

Crontabを実行してこれらのすべてのジョブを開始したり、強制的に実行したりすることはできますか?

実際に動作していることを確認しようとしています。

5
Chris Hough

それらが実行されているかどうかを確認したい場合は、以下を使用します。

grep -i cron /var/log/syslog
13

Cronと同じことをしてください。

  • run-parts -v /etc/cron.daily
  • run-parts -v /etc/cron.weekly

-vは、実行前にスクリプト名を出力します

5
Nate Rooth

cronが実行されていることを確認するだけの場合は、次の操作を実行できます。

service cron status
2
ryanjdillon

この質問は、これらの循環cronジョブを実行するanacronに関するものです。

まず、anacrontabファイルの構文が有効であることを確認してください。何も表示されない場合は、問題ありません。

/usr/sbin/anacron -T

次に、毎時、毎日、毎週、毎月実行されるすべてのスクリプトを実行できます。これはたくさんあるかもしれないので、/etc/cron.{hourly|daily|weekly|monthly}何が起こるかを確認します。それらをすべて実行するには:

Sudo su -
cd / && run-parts --report /etc/cron.hourly
cd / && run-parts --report /etc/cron.daily
cd / && run-parts --report /etc/cron.weekly
cd / && run-parts --report /etc/cron.monthly

最後に、anacronのスケジューリングシステムが正しく機能しているかどうかを確認します。これは次の方法で行うことができます。

/usr/sbin/anacron -n -f cron.monthly

-nは今すぐジョブを実行することを意味し、-fは、タイムスタンプを無視して強制することを意味します)。それは毎月のジョブを実行します。バックグラウンドでサイレントに実行され、ジョブが完了するとメールが届きます。ジョブが開始する前にランダムな遅延が発生します。これはanacrontabの遅延列で指定されています。

あなたは何をしているかを見ることができます:

grep monthly /var/log/syslog

次のようなことを行うことで、anacronに任意のサイクルを実行させることもできます。

echo "20160101" | cat > /var/spool/anacron/cron.monthly
/usr/sbin/anacron cron.monthly

これにより、非常に古い日付がスプールファイルに入力されます。これは、毎月のジョブが1か月以上前に最後に実行されたことをanacronに伝え、今またはすぐに実行するようにスケジュールします。

1
Simon Woodside