このエントリーをはてなブックマークに追加

シェルスクリプト:ログ出力

シェルスクリプト


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

個人的に現在(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の箇所はなんでも良い。