GNU/Linux >> Linux の 問題 >  >> Linux

Crontab ログ:私の Cron スクリプトの出力をログに記録する方法

質問 :backup.sh シェル スクリプトを作成し、それを crontab に追加して毎日実行しました。バックアップ cron スクリプト ジョブが正常に実行されたかどうかを確認するにはどうすればよいですか?また、backup.sh シェル スクリプト内にいくつかの echo ステートメントがあります。スクリプトが cron ジョブとして実行されたときに、スクリプトの出力をログ ファイルに保存するにはどうすればよいですか?

回答 :毎日深夜に実行するために、以下に示すように crontab に backup.sh を追加したとします。

$ crontab -e
59 23 * * * /home/john/bin/backup.sh

このジョブが正常に実行されたかどうかを確認するには、システムで実行されるすべての cron ジョブに関する情報が含まれている /var/log/cron ファイルを確認してください。次の出力からわかるように、john の cron ジョブは正常に実行されました。

$ tail /var/log/cron
Oct  8 22:00:00 dev-db crond[18340]: (root) CMD (/bin/sh /home/root/bin/system_check &)
Oct  8 23:00:00 dev-db crond[20348]: (oracle) CMD (/bin/sh /home/oracle/bin/cleanup.sh &)
Oct  8 23:59:00 dev-db crond[20399]: (john) CMD (/bin/sh /home/john/bin/backup.sh &)

cron ログには次の情報が含まれます:

  • タイムスタンプ – cron ジョブが実行された日時
  • ホスト名 – サーバーのホスト名 (dev-db など)
  • cron デーモン名と PID。たとえば、crond[20399]
  • ユーザー名 – この cron ジョブが実行されたユーザー名。例:ジョン。
  • CMD – これに続くものは、その時点で実行された実際のコマンドです。

backup.sh 内に echo ステートメントがある場合は、それらをファイルに記録することをお勧めします。一般に、backup.sh cron スクリプトが何らかの出力 (エラーを含む) をスローする場合、それらをログ ファイルに記録することをお勧めします。これを行うには、crontab エントリを変更し、以下に示すように出力とエラーのリダイレクトを追加します。

$ crontab -e
59 23 * * * /home/john/bin/backup.sh > /home/john/logs/backup.log 2>&1

上記では:

  • > /home/john/logs/backup.log backup.sh スクリプトの標準出力が backup.log ファイルにリダイレクトされることを示します。
  • 2>&1 標準エラー (2>) が、標準出力 (&1) が指す同じファイル記述子にリダイレクトされることを示します。
  • したがって、標準出力とエラーの両方が /home/john/logs/backup.log にリダイレクトされます

Linux
  1. Linuxでcronを使用する方法

  2. LubuntuLinuxでCrontabを使用してスタートアップスクリプトを作成する方法

  3. 「猫」の出力で単語を強調表示する方法は??

  1. cronデーモンの内部はどのように機能しますか?

  2. 特定の曜日に cron ジョブを実行する方法

  3. 出力をファイルに追加する方法は?

  1. system() の出力をファイルにリダイレクトする方法は?

  2. Python - Supervisor で標準出力をログに記録する方法 -

  3. シェルスクリプト内でログの冗長性を管理するにはどうすればよいですか?