コンソールから任意のテキストを LINE に通知できる自作コマンドを用意する


はじめに

データ分析や機械学習などで長時間の処理をコンソール上で実行する際、処理の途中経過や終了を LINE で通知してもらえたら便利ですよね。というわけで、引数で指定したテキストを LINE で通知してくれるコマンドを自作して使ってみています。

やったこと

LINE Notify通知 APIcurl で叩くシェルスクリプトに実行権限を付けてコマンド化しました。

LINE Notify を設定する

作業は以下のとおりです。

  • LINE で通知先としたいグループを作る。
  • 作ったグループに "LINE Notify" を招待する(メンバーとして加える)。
  • Line Notify のマイページ でアクセストークンを発行する。
    • このとき、通知の送信先には、作っておいたグループを指定します。
    • 発行されたアクセストークンはシェルスクリプトで使います。
    • アクセストークンは重要なセキュリティ情報です。自分以外には知られないよう管理しましょう。

シェルスクリプトを用意する

引数(テキスト)を LINE Notify の 通知 API を使って通知するシェルスクリプト(ファイル名を例えば line_notify としておきます)は、以下のような感じになります。

line_notify
#!/bin/bash

API_URL=https://notify-api.line.me/api/notify
API_TOKEN=<発行したトークン>

if [ $# -ne 1 ]; then
  exit 1
fi

curl -X POST -H "Authorization: Bearer $API_TOKEN" -F "message=$1" $API_URL
echo

コマンド化する

作ったシェルスクリプト line_notify に実行権限を付与します。もちろん、あらかじめパスを通しておいた場所に置いても使いやすいと思います。

$ chmod 700 line_notify

使い方

通知したいテキストを引数にして、line_notify を実行してみましょう。

$ line_notify '処理が完了しました!'

コンソールに以下が表示されれば成功で、LINE にテキストが通知されます。

{"status":200,"message":"ok"}

おわりに

時間がかかる処理の途中や最後に line_notify を入れて LINE へ通知を送るようにしておけば、安心して PC の前を離れることができる、かもしれません。

参考