Edited at

linuxコマンド終了したらSlackに通知するようにする

More than 1 year has passed since last update.


背景


  • ダウンロードや、機械学習の学習など、長い時間がかかる処理が終わった時に、Slackに通知するようにしたい


  • ntfy があったので使ってみる


目的


  • ntfyを使って見る


概要


  • ntfyについて

  • 使い方


結論


  • ほんの数分で環境を作ることができた。素晴らしい

sh some_task.sh; ntfy send "Finished"

のように通知が可能

すでに動いているプロセスがある場合は、

pstree -p

などでプロセスIDを調べて

while kill -0 <PID> 2> /dev/null; do sleep 1; done; ntfy send "Finished"

で通知が可能


内容


ntfyについて



  • LICENSEはGPL

  • pythonで実装されている

  • いろいろな通知との連携が実装されている


    • 今回はそのうち、Slackとの連携をやってみる




使い方


1. Slackの部屋を作成する

今回は、#generalの部屋に通知をする


2. Slackのトークンを作成

https://api.slack.com/web#authenticationこちらから作成可能


3. python環境の構築

pipが使える状態にする

- '2.7'

- '3.3'
- '3.4'
- '3.5'

travis.ymlを見ると、上記のバージョンで実行できそうである


4. ntfyのインストール

sudo pip install ntfy

echo 'eval "$(ntfy shell-integration)"' >> ~/.bashrc
source ~/.bashrc


5. 設定ファイルの追加(~/.ntfy.yml)

---

backends:
- slack
slack:
token: slacktoken
recipient: "#general"


6. 実行テスト

$ ntfy send "test"

これで、SlackにポストされていればOK!