最後に実行したcronジョブの詳細を取得したい。内部の問題が原因でジョブが中断された場合、cronジョブを再実行します。
注:スーパーユーザー権限はありません。
次を使用して、以前に実行されたcronジョブの日付、時刻、ユーザー、およびコマンドを表示できます。
grep CRON /var/log/syslog
これにより、allcronジョブが表示されます。特定のユーザーによって実行されるジョブのみを表示する場合は、次のようなものを使用します。
grep CRON.*\(root\) /var/log/syslog
ジョブの開始時にcronログに記録するなので、長いジョブに独自の完了ログを保持させたい場合があります。システムがジョブの途中でダウンした場合でも、ログに残ります!
編集:ルートアクセス権がない場合は、独自のジョブログを保持する必要があります。これは、ジョブコマンドの最後に次を追加するだけで実行できます。
&& date > /home/user/last_completed
ファイル/home/user/last_completed
には、常にジョブが最後に完了した日時が含まれます。ファイルに完了日を追加する場合は、>>
の代わりに>
を使用します。
コマンドを小さなbashまたはshスクリプトに入れてcronにそのファイルを実行させることでも同じことができます。
#!/bin/bash
[command]
date > /home/user/last_completed
このためのcrontabは次のとおりです。
* * * * * bash /path/to/script.bash
/var/log/cron
には、cronジョブログが含まれます。ただし、表示するにはルート権限が必要です。
CentOs、Sudo grep CRON/var/log/cron