LoginSignup
39
39

More than 5 years have passed since last update.

長時間の処理スクリプトが終わったタイミングでiPhoneに通知してくれるスクリプト

Posted at

概要

長いバッジ処理などが終わったかどうかの通知って結構面倒くさくて、そもそもスクリプトに仕込んどけって話なんだけど、動かしたあとに「あ、これ結構ながいやつだ」みたいなスクリプトもあるので、

  • processを監視する
  • processが消えたタイミングでiPhoneに通知する
  • bashでどこでも動く

みたいなのを作った。

事前準備

iftttのmaker channelを使っているので、iftttのアプリをiPhoneに入れて、iPhoneに通知が行くようにレシピを入れておく。

参考
http://mag.switch-science.com/2015/06/25/ifttt-maker-channel/

script

#!/bin/bash
CURL=/usr/bin/curl
IFTTT_EVENT="<your event name>"
IFTTT_KEY="<your ifttt key>"
IFTTT_URL="https://maker.ifttt.com/trigger/${IFTTT_EVENT}/with/key/${IFTTT_KEY}"
PROCESS_NAME=`cat /proc/$1/cmdline`

send_notification(){
        ${CURL} -X POST \
            ${IFTTT_URL} \
            --header "Content-Type: application/json" \
            --data-binary "{\"value1\": \"${PROCESS_NAME}\"}"
}

while true
do
        kill -0 $1 > /dev/null 2>&1
        if [ $? = 0 ]; then
                echo "alive"
        else
                echo "dead"
                send_notification
                break
        fi
        sleep 3
done

起動

バックグラウンドで起動する。(digitalocean上でよく使うので、nohup入れている)

[root@centos-512mb-sgp1-01 ~]# sleep 30&
[1] 15619
[root@centos-512mb-sgp1-01 ~]# nohup bash ifttt.sh 15619 > /dev/null 2>&1 &
[2] 15682

picture.jpg

届いた。Apple watchで終了通知とか受け取ると未来感ある。

39
39
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
39
39