ログファイルに終了コードを追加する

ログファイルに終了コードを追加する

AWSで自動化されたEBSバックアップを実行するためのbashスクリプトを作成しました。 cronjobで起動します。

0 2 * * * /bin/bash /root/backup_snapshots.sh > backup.log 2>&1

これはうまくいきますが、次にやりたいことは、スクリプトが正常に実行されたことを知らせる終了コードを追加することです(これを確認するようにNagiosを設定できます)。私がしたいことがいくつかあります:

  1. /var/log/backup/ ディレクトリに backup.log を作成します。
  2. このチェックをより簡単に検出できるように、毎日回転するようにlogrotateを設定します。

しかし、私が持っている質問の1つは、cronに私が作成したbackup.logファイルに終了コードを書き込むことができるということです。または、このタイプの実装を使用する必要がありますか?

次の終了コードを使用して、実際のスクリプトを起動するスクリプトでcrontabエントリを作成します。

#!/bin/bash
/root/backup_snapshots.sh 2> /dev/null
if [ $? -eq 0 ]
then
  echo "PASS"
else
  echo "FAIL" >&2
fi

私はこれをできるだけ簡単にしたいと思います。だからcronがそれを行うことができれば良いでしょう!そうでない場合は、backup_snapshots.shを実行し、cronを介して実行するbashスクリプトを生成するのが最適ですか?

ベストアンサー1

#!/bin/bash
exec 1>/var/log/backup/backup_sbapshots.log 2>&1
if /root/backup_snapshots.sh
then
  echo "PASS"
else
  echo "FAIL"
fi

図のようにcronスクリプトを作成し、cronjobの実行状態をバックアップログファイルに入れます。ステートメントには独自の変数があるため、この$?変数は言及されていません。if

おすすめ記事