健忘録的メモ。ここでは、 cron_daily.log
にエラーがerrという文字列が含まれるかを確認して先頭100バイトをcurlでslackのwebhookに送っている。 head -c 100
がないとcurlが失敗するので要注意。チャンネル名やwebhookのURLはダミー。
#!/bin/bashERROR_CONTENT=`cat cron_daily.log | grep-i err | head-c 100`ERROR_BYTE=`echo$ERROR_CONTENT | wc-c`echo$ERROR_BYTEif[$ERROR_BYTE-gt 1 ];then
echo"エラーがありました。"
curl -X POST --data-urlencode"payload={\"channel\": \"#sifue_bot_dev\", \"username\": \"botのエラー報告\", \"text\": \"$ERROR_CONTENT\", \"icon_emoji\": \":exclamation:\"}" https://hooks.slack.com/services/T99999999/B99999999/xxxxxxxxxxxxxxxx
else
echo"エラーはありませんでした。"fi
これをcrontab -eとかで
0 7 * * * /home/sifue/cron_daily_log_report.sh
こんな感じでcronを仕込んでおけば毎朝7時にログにエラーがあったかを報告してくれる。便利。