・cronで1hおきに動きサーバの異常を検知するシェルスクリプトhoge.shがあります
・チェック内容(ssh接続の可否・ヘルスチェックのsuccessかfailure・ロードバランサとの疎通確認)
・異常があった場合ssh.txt health.txt LB.txtに異常のあったサーバ出力されます。
今の状態だとログの出力がないので処理を追加したいです。
追加したい処理
・異常がある際はまとめて1行に出力したい(例:YYYY-MM-DD hh:mm:ss sshNG:xxx-xxx-xxx,xxx-xxx-xxx healthNG:xxx-xxx-xxx LBNG:xxx-xxx-xxx,xxx-xxx-xxx)
・(ssh.txt health.txt LB.txt)に異常サーバが出力された場合のみ$logfileに出力し異常が書き出されたtxt全てを反映するようにしたい。(自分で作ったものだとそれぞれのtxtに1台ずつ出力された場合、最初のif文しか出力されない。)
・各txtに異常なサーバが複数台あった場合はカンマ区切りで出力させたい
・echo -n で改行を抑止しているが次のcronが動く時は改行したい
どなたかお知恵をお借りできませんでしょうか。
bash
1if [ -s /home/ssh.txt ]; then 2 echo -n "`date "+%Y-%m-%d %H:%M:%S"` sshNG:`cat /home/ssh.txt`" >> $logfile 3 elif [ -s /home/health.txt ]; then 4 echo -n "`date "+%Y-%m-%d %H:%M:%S"` healthNG:`cat /home/health.txt`" >> $logfile 5 elif [ -s /home/LB.txt ]; then 6 echo -n "`date "+%Y-%m-%d %H:%M:%S"` LBNG:`cat /home/LB.txt`" >> $logfile 7fi
回答1件
あなたの回答
tips
プレビュー