macターミナルでの処理が完了したらLINEに通知する
本記事の目的
そろそろ処理終わってるかな?と、ターミナルを覗きに行く時間をなくすことです。
この時間がなくなると、他の作業に結構集中できます。
ソフトウェアエンジニアや機械学習エンジニアで、時間のかかる処理(コンテナのビルド・デプロイや、パラメータのチューニングなど)をターミナルで行っている方にぜひお試しして頂きたいです。
手順
- LINENotifyのトークンを発行する
- pythonファイルを作成(pythonを書けない方でも大丈夫です)
- ターミナルでの処理実行文を作成
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
以上です。
余談
余談ですが、私は実行する文が複数ある場合、以下の様な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
実際にコピペするときは、コメントアウトは覗きます。
お読み頂きありがとうございました。