いろいろ嵌ったので備忘録
シェルスクリプト自体がログになるからいらねーじゃんって思うところはあるんだけどもそれなりに品質にうるさい会社勤めは目に見える形でログファイルが欲しいみたい。
#!/bin/bash touch panic.txt echo Panic is god > panic.txt exit
こういうシェルスクリプトがあったとして不通に実行する。
何も出力されない。(目的のファイルは生成されるが。)
それだとエビデンスガー証跡ガーっていう上司にせっかく作ったスクリプトを使用禁止されてしまいかねません。 以下の頭の3行を以下のようにします。 -xオプション:なんでもエラー出力に投げちゃうよってやつ echoうんたらかんたら:標準・エラー・コマンド結果にタイムスタンプを付与する奴。ググったら出る奴のアレンジ版だよ
#!/bin/bash -x echo LOGFILE PRINTING testout.log testerr.log exec &> >(awk '{print strftime("[%Y-%m-%d %H:%M:%S]"),$0 } { fflush() } ' |tee /tmp/hogehoge/logtest.log) touch panic.txt echo Panic is god > panic.txt exit
で実行する。
スクリプト実行ログファイルが出力できました!やったね!
おわり