LoginSignup
0
1

More than 1 year has passed since last update.

macターミナルでの処理が完了したらLINEに通知する

Posted at

macターミナルでの処理が完了したらLINEに通知する

本記事の目的

そろそろ処理終わってるかな?と、ターミナルを覗きに行く時間をなくすことです。
この時間がなくなると、他の作業に結構集中できます。
ソフトウェアエンジニアや機械学習エンジニアで、時間のかかる処理(コンテナのビルド・デプロイや、パラメータのチューニングなど)をターミナルで行っている方にぜひお試しして頂きたいです。

手順

  1. LINENotifyのトークンを発行する
  2. pythonファイルを作成(pythonを書けない方でも大丈夫です)
  3. ターミナルでの処理実行文を作成

LINENotifyのトークンを発行する

こちらの記事がとても参考になります。

pythonファイルを作成(pythonを書けない方でも大丈夫です)

以下のファイルを作成します。

notify.py
import requests

def main():
    send_line_notify('解析作業終わったってばよ')

def send_line_notify(notification_message):
    """
    LINEに通知する
    """
    line_notify_token = 'ここに発行したトークンをコピペ'
    line_notify_api = 'https://notify-api.line.me/api/notify'
    headers = {'Authorization': f'Bearer {line_notify_token}'}
    data = {'message': f'message: {notification_message}'}
    requests.post(line_notify_api, headers=headers, data=data)

if __name__ == "__main__":
    main()

ターミナルでの処理処理文を作成

以下の文をコピーしてターミナルにてペーストし、実行

ターミナルにコピペ.text
#メイン処理がtest.pyの実行である場合
python3 test.py ; python3 $HOME/line_notify/notify.py

上記を実行すると、以下の様な通知が来ます。
IMG_3489.jpg
IMG_3489.jpg

以上です。

余談

余談ですが、私は実行する文が複数ある場合、以下の様なtextファイルを作成し、ターミナルにそのままコピペをしています。すると処理が次々に実行されます。

#awsにログイン
aws ecr get-login-password --region ap-northeast-1 --profile default | docker login --username AWS --password-stdin https://hogehoge.dkr.ecr.ap-northeast-1.amazonaws.com

#コンテナのビルドなど
docker-compose up -d app db
docker-compose up -d
docker-compose exec worker python test.py ; python $HOME/line_notify/notify.py
pwd

#ディレクトリを移動
cp bayesian_optimization.pickle ../bayesian-optimization
cd ..
cd bayesian-optimization

poetry run python3 test.py
python $HOME/line_notify/notify2.py

#最後の文は実行されないので、実行したい処理の後に以下を追加
ls

実際にコピペするときは、コメントアウトは覗きます。

お読み頂きありがとうございました。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1