シェルスクリプト


シェルスクリプトの結果をログに出力する際のメモです。

個人的に現在(2015年12月時点)のベストプラクティス

下記記述をスクリプトの頭と末尾に記載しておくことで、スクリプトを実行した時間とスクリプトにかかった時間をログに記載できる

SECONDS=0
LOGFILE="/tmp/backup-`date +%w`.log"
exec > "${LOGFILE}"
exec 2>&1
~~~
コマンド
~~~
echo "[INFO] Script time is ${SECONDS}sec."

とにかくシェルスクリプトの結果をログに吐き出す

test.sh > test.log 2>&1

execコマンドを使ってログ出力する

LOGFILE="/tmp/backup-`date +%w`.log"
exec >> "${LOGFILE}"
exec 2>&1

コマンド

参考にさせていただいたURL:http://memo.laughk.org/2014/04/24/shell_exec_log.html

まとめて囲う方法

#!/bin/sh

LOG=result.log

{

  date
  echo "Hello World"
  echo "Good Night"
  service httpd status

} >> ${LOG}

ヒアドキュメントを使って出力をまとめる


#!/bin/sh
LOG=test.log
 
cat << EOF >> ${LOG}
====================
   Program Start
====================
EOF

POINT:EOFの箇所はなんでも良い。

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-06-30 (木) 01:40:11