cronジョブがいつ実行されているかを確認したい。私は自分のsudo crontab -e
仕事のログがあると信じていますが、どこですか?
私はグーグルを検索し、/var/log
(名前に「cron」が含まれているものが何も表示されていない)を調べて、/etc/syslog.conf
私も持っていないファイルを編集する推奨事項を見つけました。
cronジョブがいつ実行されているかを確認したい。私は自分のsudo crontab -e
仕事のログがあると信じていますが、どこですか?
私はグーグルを検索し、/var/log
(名前に「cron」が含まれているものが何も表示されていない)を調べて、/etc/syslog.conf
私も持っていないファイルを編集する推奨事項を見つけました。
回答:
デフォルトのインストールでは、cronジョブがログに記録されます
/var/log/syslog
実行することにより、そのログファイル内のcronジョブのみを見ることができます
grep CRON /var/log/syslog
何も再設定していない場合、エントリはそこにあります。
/var/log/
ディレクトリ内の別のファイルにある場合があります。cron.logまたは同等のものを確認します。
grep -i CRON
大文字と小文字を区別せずに検索することもできます
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
これにより、実行されるスクリプトによって生成される可能性のあるすべての標準出力とエラーが、指定されたログファイルにリダイレクトされます。
*.*;auth,authpriv.none -/var/log/syslog
をに変更できます*.*;auth,authpriv.none,cron.none -/var/log/syslog
。
2>&1
略?
また、読みやすくするために、個々のcronjobの出力をそれぞれのログに送信することもできます。日付の出力をどこかに追加するだけです。
0 15 * * * /home/andrew/daily-backup.sh >> /var/log/daily-backup.log 2>&1
/var/log/syslog
デフォルトで入っています。
ただし、より便利な別個のcron.logを作成するように設定できます。
このQ&Aではプロセスについて説明します。
16.04:cronでcron.logを作成し、リアルタイムで監視するにはどうすればよいですか?
また、この答えには、wcron
ほぼリアルタイムで表示されるコマンドを作成するための指示があります。さらに、別の回答へのリンク、
これは、ログレベルを変更してジョブの開始以上のものを含める方法を示しています。レベル15には、エラーと終了時刻も表示されます。
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.
前述のように、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を試すこともできます。