シェルスクリプト

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

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

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

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

 コマンド
   
  
  

 echo "[INFO] Script time is ${SECONDS}sec."

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

 test.sh > test.log 2>&1

execコマンドを使ってログ出力する [#l471c327]

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

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

まとめて囲う方法 [#l1738b50]

 #!/bin/sh
 
 LOG=result.log
 
 {
 
   date
   echo "Hello World"
   echo "Good Night"
   service httpd status
 
 } >> ${LOG}

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

 #!/bin/sh
 LOG=test.log
  
 cat << EOF >> ${LOG}
 ====================
    Program Start
 ====================
 EOF
 
 POINT:EOFの箇所はなんでも良い。