自宅PCやサーバのHDD容量を監視して、逼迫してきたら、LINE通知に24H自動通知しています。
処理の流れとしては、
- WIndowsタスクで一定期間で監視スクリプトを実行
- 監視スクリプトで要通知となればLINE通知にPOSTする
- そうでなければなにもしない(スルー)
これを24時間365日行っています。
ここでは、上記の「LINE通知にPOSTする」部分について、その方法と注意点について紹介しようと思います。
「 WIndowsタスクで一定期間で監視スクリプトを実行」部分については、本ブログの関連ページを参照してください。
かなり説明を端折ってますので、初心者の方はネットでいろいろ調べてみてください。
紹介内容とポイント
- ①LINE通知への通知方法。少なくとも2種類ある。それぞれ長所短所があるので用途により使い分けるとよい
- ②LINE通知に直接通知を投げる
- ③LINE通知にIFTTT経由で通知を投げる
- ④まとめ
①②については、「LINE通知の直接トリガーとIFTTT経由のトリガーについて」を参照してください。
③LINE通知にIFTTT経由で通知を投げる
監視対象機器(ここでは自宅PCとします)から「IFTTT」サービス経由で「LINE Notify」(LINE通知)サービスにアクセスします。やり方は、ひとことでいうと、IFTTTサービスに登録してMyAppletを作成するだけです。それだけで普段使っているLINEに通知が来ます。
たとえば、こんな感じです。
※背景画像は東京市ヶ谷にあるポケストップ
ひとつ目の通知が直接通知。二つ目の通知はIFTTT経由通知。同時刻にPOSTしていますが、到着に28分間のタイムラグがありました。IFTTT経由通知の場合は処理が遅いのではなく、ある時点でまとめて処理しているだと推察します。
powershellのコード例
以下PowerShellのコード例を示します。ここでは、LINE通知をする監視対象機器を自宅PC(Windows)としているのと、監視処理を同じくPowershellで書いてWindowsタスクから起動しています。
MacOSやLINUXサーバの場合は、「curl」コマンド等を使って同様に実装可能と思います。
IFTTT_trig.ps1
Add-Type -AssemblyName System.Web
Set-Variable -Name 'TOKEN_IFTTT' -Value <IFTTTのトークン文字列>
echo ("※IFTTTへMAKERイベント発火 at " + $Now)
$oXmlHttp = New-Object -Com Msxml2.XMLHTTP.3.0
$URL = "https://maker.ifttt.com/trigger/test/with/key/$TOKEN_IFTTT"
#コマンドライン引数(パラメータ)の取得
If ($Args.Length -eq 1){
$a1 = [SYstem.Web.HttpUtility]::UrlEncode($Args[0])
$URL = $URL + "?value1=" + $a1
}else{
echo "Error:引数が多すぎます"
exit
}
$oXmlHttp.Open("GET", $URL, $false)
$oXmlHttp.Send()
If ($oXmlHttp.Status -eq 200){
echo [SYstem.Web.HttpUtility]::UrlDecode($URL)
}Else{
echo "Error returnCode:" + $oXmlHttp.Status
}
※ここではIFTTTのMyAppletに設定するトリガーコマンドを「test」としています。
下記コマンドをWindowsのコマンドプロンプトで実行します
IFTTT_trig.ps1 "ディスク逼迫 at MyPC(残量 649)"
※通知内容の変更を容易にするため、上記スクリプトに引数をひとつ渡すようにしています。
※24H監視する場合はWindowsタスクへの登録が必要です。
④まとめ
自宅PCやサーバのHDD容量を監視して、逼迫してきたら、LINE通知に24H自動通知しています。
ここでは、「LINE通知に24H自動通知」について、その方法と注意点について紹介しました。
関連する記事・ページ
LINE通知の直接トリガーとIFTTT経由のトリガーについて
LINE通知の直接トリガーとIFTTT経由のトリガーについて(その2)
自宅PCをスマホでリモート管理(タスク管理編)
PCをリモート管理する1手法
【コードサンプル】Windowsタスクへの登録例
【コードサンプル】heartbeat.ps1 – 心音確認 PowerShell Script
【コードサンプル】1時間タスクのScript例
【コードサンプル】24時間タスクのScript例
【コードサンプル】hbJob.bat – Windows Bat Script
【コードサンプル】プロセスモニタのScript例
【コードサンプル】IFTTT経由でLINE通知するScript例
【コードサンプル】ネット転送量モニタ
お世話になったリンク
LINE Notifyでたのでちょっと試してみる。ついでにGithub Enterpriseのwebhookを通知するやつを作ったぞ!!
※東京市ヶ谷のポケストップ「ビーナス」
以上です。