cron / crontabログはどこにありますか?


753

cronジョブがいつ実行されているかを確認したい。私は自分のsudo crontab -e仕事のログがあると信じていますが、どこですか?

私はグーグルを検索し、/var/log(名前に「cron」が含まれているものが何も表示されていない)を調べて、/etc/syslog.conf私も持っていないファイルを編集する推奨事項を見つけました。

回答:


895

デフォルトのインストールでは、cronジョブがログに記録されます

/var/log/syslog

実行することにより、そのログファイル内のcronジョブのみを見ることができます

 grep CRON /var/log/syslog

何も再設定していない場合、エントリはそこにあります。


46
MTAがインストールされていない場合、cronはジョブ出力を破棄します。
バリーケリー

11
cronログは、/var/log/ディレクトリ内の別のファイルにある場合があります。cron.logまたは同等のものを確認します。
Navigatron 14年

4
これは仕事からの出力を与えません。cronが処理されたという一般的なメッセージを提供するだけです。
チョビー

2
AWS上では、は/ var / log / cronのだった
月見

5
@shadi grep -i CRON大文字と小文字を区別せずに検索することもできます
-nafg

236

syslogに表示されるCRONエントリのみを含むcron.logファイルを作成できます。次の指示に従うと、CRONジョブがsyslogに表示されることに注意してください。

ファイルを開く

/etc/rsyslog.d/50-default.conf

次で始まる行を見つけます。

#cron.*

その行のコメントを外し、ファイルを保存して、rsyslogを再起動します。

sudo service rsyslog restart

ここで、cronログファイルが表示されます。

/var/log/cron.log

これで、Cronアクティビティが(syslogに加えて)このファイルに記録されます。

cron.logには、cronが/etc/cron.hourly、cron.dailyなどでスクリプトを実行したときのエントリが表示されることに注意してください。たとえば、次のようなものです。

Apr 12 14:17:01 cd CRON[14368]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

ただし、/ etc / cron.dailyまたは/etc/cron.hourly内で実際に実行されたスクリプトに関する詳細は、それらのスクリプトがcron.log(または他のログファイル)に出力しない限り、表示されません。

crontabが実行されているかどうかを確認し、cron.logまたはsyslogで検索する必要がない場合は、選択したログファイルに出力をリダイレクトするcrontabを作成します。

01 14 * * * /home/joe/myscript >> /home/log/myscript.log 2>&1

これにより、実行されるスクリプトによって生成される可能性のあるすべての標準出力とエラーが、指定されたログファイルにリダイレクトされます。


1
私の意見では、この答えは将来的には優れています。したがって、syslogファイルはより明確になります。
shgnInc

9
syslogからcronログも除外するには、行*.*;auth,authpriv.none -/var/log/syslogをに変更できます*.*;auth,authpriv.none,cron.none -/var/log/syslog
公園。

CentOS 6では、cron。*は/etc/rsyslog.confで定義されていますが、rsyslog.dフォルダーでは空です。
スコットチュー14

何の2>&1略?
ジョンジョー

2
@JohnJoe 2>&1は、stderrをstdoutに転送するために使用されます。この方法では、stderrにログファイルを渡すこともできます。
サンポサラーラ

79

その場合は、継続的に監視することが役立つ場合があります。その場合:

tail -f /var/log/syslog | grep CRON

10
おそらく-F、名前の変更を越えてファイルを追跡するを使用するので、切り捨てられたり移動したりすると/var/log/syslog.1.gz、現在の/var/log/syslogファイルを追跡し続けることができます。男のドキュメントごとに、これは実行するのと同じであるtail xxxx -f --retry
Momer

37

また、読みやすくするために、個々のcronjobの出力をそれぞれのログに送信することもできます。日付の出力をどこかに追加するだけです。

 0 15 * * *    /home/andrew/daily-backup.sh >> /var/log/daily-backup.log 2>&1

4
true。ただし、構文エラーのためにこの行の実行に失敗した場合、指定された出力ログには何も書き込まれません。
ラプター

11
これを解決するには、ログファイルを指定した後に2>&1を追加します。また、crontabに追加する前にcronjobをテストし、最初のスケジュールされた実行でcrontabが適切にフォーマットされていることを確認することをお勧めします。
アンドリューマイヤー

10

systemdシステムにインストールしている場合は、journalctlコマンドを使用してcronジョブログを表示できます。

たとえば、私のUbuntu 17.10では:

journalctl -u cron.service

9

これは非常に古い質問ですが、これらの答えはどれも満足のいくものではありません。

最初にcronジョブを毎分実行し、次にテストロギングを使用してcronを非デーモンとして実行します(一時的に、すでに開始されている可能性のあるcrondを強制終了します)。

crond -nx test

また、端末を介して流れるプログラム実行のログを確認します。


7
14.04では実行されませんNo command 'crond' found, did you mean: Command 'cron' from package 'cron' (main)
G-。

8

/var/log/syslogデフォルトで入っています。

ただし、より便利な別個のcron.logを作成するように設定できます。

このQ&Aではプロセスについて説明します。

16.04:cronでcron.logを作成し、リアルタイムで監視するにはどうすればよいですか?

また、この答えには、wcronほぼリアルタイムで表示されるコマンドを作成するための指示があります。さらに、別の回答へのリンク、

cronログレベルを変更する方法

これは、ログレベルを変更してジョブの開始以上のものを含める方法を示しています。レベル15には、エラーと終了時刻も表示されます。


5

Fedoar 29およびRHEL 7

journalctl -t CROND

journalctlマニュアルから:

   -t, --identifier=SYSLOG_IDENTIFIER|PATTERN
       Show messages for the specified syslog identifier SYSLOG_IDENTIFIER, or for any of the messages with a "SYSLOG_IDENTIFIER" matched by PATTERN.

       This parameter can be specified multiple times.

3

cronの出力をtmpファイルにリダイレクトできます

など:00 11 07 * * / bin / bash /home/ubuntu/command.sh> / tmp / output 2>&1

エラーと通常の出力、両方が同じファイルにリダイレクトされます


2

前述のように、cronジョブは /var/log/syslog

syslogをgrepにパイプして、次のようにCRONログを除外できます。

less /var/log/syslog | grep CRON 

このように、crontabログを検索できます

less /var/log/syslog | grep CRON | grep <search-keyword-comes-here>

このように、gzファイルに保存されているcrontab履歴ログを検索できます

less /var/log/syslog.2.gz | grep CRON | grep <search-keyword-comes-here>

ロギングメカニズムがあると常に良いと考えられており、サーバーのELKをすばやくセットアップできます。また、logz試すこともできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.