web-dev-qa-db-ja.com

Unixライクシステムで最後に実行されたcronジョブの詳細

最後に実行したcronジョブの詳細を取得したい。内部の問題が原因でジョブが中断された場合、cronジョブを再実行します。

注:スーパーユーザー権限はありません。

44
kannanrbk

次を使用して、以前に実行された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
67
Stecman

/var/log/cronには、cronジョブログが含まれます。ただし、表示するにはルート権限が必要です。

11
Vijay Vasanth

CentOs、Sudo grep CRON/var/log/cron

2
yen leidong