web-dev-qa-db-ja.com

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

Cronジョブがいつ実行されているかを確認したい。 Sudo crontab -eジョブのログがあると思いますが、どこにありますか?

Googleを検索して、/var/log(名前に 'cron'が表示されていない)を検索し、/etc/syslog.confも持っていないファイルを編集する推奨事項を見つけました。

735
Scott Szretter

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

/var/log/syslog

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

 grep CRON /var/log/syslog

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

869

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には、/ etc/cron.hourly、cron.dailyなどでcronがスクリプトを実行したときのエントリが表示されることに注意してください。何かのようなもの:

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

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

229
user12345

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

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

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

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

デフォルトでは/var/log/syslogにあります。

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

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

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

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

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

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

7
SDsolar

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

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

crond -nx test

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

7
Tristan Maat

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

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

journalctl -u cron.service
6
an9wer

Fedora 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
HarlemSquirrel

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

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

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

2
Himanshu

前述のように、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 を試すこともできます。

1
zero