私はこの質問を正しく聞いているといいのですが。サーバーで設定されているすべてのジョブを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を実行してこれらのすべてのジョブを開始したり、強制的に実行したりすることはできますか?
実際に動作していることを確認しようとしています。
それらが実行されているかどうかを確認したい場合は、以下を使用します。
grep -i cron /var/log/syslog
Cronと同じことをしてください。
-vは、実行前にスクリプト名を出力します
cron
が実行されていることを確認するだけの場合は、次の操作を実行できます。
service cron status
この質問は、これらの循環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に伝え、今またはすぐに実行するようにスケジュールします。