コマンドの終了をSlackに通知するコマンドを作った。
コマンドの終了をSlackへの投稿で知らせるコマンドを作りました。DeepLearning等の機械学習の学習はとても時間がかかり、GPUを使っても数時間かかるのが当たり前なので終了通知を何らかの方法でうけとりたい。そこでSlackでその通知を受け取れるようにした。
使い方は簡単、まずホームディレクトリに.exslackrc
というファイルを作成し以下のように書き出す。
{ "webHookURL": "https://hooks.slack.com/services/X..../Y....", "destination": "@rompei", "logFile": "/home/rompei/joblog.txt" }
webHookURL
はSlackのincoming-webhookのURLで、destination
は通知したいユーザかチャンネル。もしコマンドの出力が必要ならlogFile
を設定すればコマンドの出力をそのファイルに出力してくれる。またlogFile
はコマンドラインオプションの-log
でも設定できる。
そして実行しいコマンドが並んだファイルを作成する。
./test1.sh xyz ./test2.sh abc
あとはコマンドの並んだファイルを引数にして実行するだけ。
Command ./test1.sh started on 2016-06-26 15:16:19.363573005 +0900 JST is done in 5.61877ms Command ./test2.sh started on 2016-06-26 15:16:20.761145297 +0900 JST is done in 10.125984ms
このような感じでSlackに通知が来る。
また、ログファイルを設定すると
exslack: 2016/06/26 15:16:19 Command ./test1.sh started on 2016-06-26 15:16:19.363573005 +0900 JST is done in 5.61877ms == Output start == test1 test1arg1 == Output end == exslack: 2016/06/26 15:16:20 Command ./test2.sh started on 2016-06-26 15:16:20.761145297 +0900 JST is done in 10.125984ms == Output start == test2 test2arg1 == Output end ==
こんな感じで出力を確認ファイルから確認できる。