STORAGEの容量チェックのScript例
hh25_check_service.ps1
- hh25_xxxなので、heartbeat.ps1が直接起動する
- 毎時25分になると実行する。
hh30
にすると毎時30分になるし、hh70
にすると実行されることはなくなる。 - 毎時15分、毎時45分に同じタスクを追加したければ、このScriptファイルをCOPYしてファイル名を
hh15_check_service.ps1
、hh45_check_service.ps1
に変更すればいい
#$scriptName = $myInvocation.MyCommand.name
#************************************************************************************
# 定数定義
#************************************************************************************
Set-Variable -Name 'trigCommand' -Value <IFTTTのEventName>
#************************************************************************************
# メイン処理
#************************************************************************************
.\hh99_check_service.ps1 "EpgTimer Service" PC_A
hh99_checkdrive.ps1
- hhxx_xxxなので、heartbeat.ps1が直接起動することはない
- 上から呼ばれるScript。実行コードの詳細はここに書く
trigCommand
は呼び出し側で設定されることを考慮している。そうでないと上書いてしまうので。- この例では、さらに、
hh99_IFTTT_trig.ps1
というScriptを呼び出してIFTTTに発火イベントを送付しており、IFTTTが発火イベントを受けるとLINE通知に通知するような仕掛けにしている。
#************************************************************************************
# 定数定義
#************************************************************************************
$NUM_OF_CHARS_FOR_KB = 3
$NUM_OF_CHARS_FOR_MB = 6
$NUM_OF_CHARS_FOR_GB = 9
$NUM_OF_CHARS_FOR_TB = 12
if ((Get-Variable -ErrorAction silentlyContinue -Name 'trigCommand' | Measure-Object).count -eq 0){
Set-Variable -Name 'trigCommand' -Value <IFTTTのEventName>
}
#************************************************************************************
# 関数
#************************************************************************************
Function getNumOfGB([string]$iStr){
$str = $iStr.Replace(",","")
If ($str.length -gt $NUM_OF_CHARS_FOR_GB){
$str.Substring(0,$str.length - $NUM_OF_CHARS_FOR_GB)
}
}
#************************************************************************************
#メイン処理
#************************************************************************************
#コマンドライン引数(パラメータ)の取得
If ($Args.Count -lt 2){
echo "Error:引数が足りません"
exit
}
#コマンドライン引数(パラメータ)の検証
$argCompName = $args[0]
$argULimitGB = $args[1]
$str = (Get-PSDrive D).Free
$str = (getNumOfGB $str)
$now = Get-Date -Format G
If ([int]$str -lt [int]$argULimitGB) {
$str2 = $str + "GB[" + $argCompName + "] at " + $now + "※IFTTTへMAKERイベント発火"
}else{
$str2 = $str + "GB[" + $argCompName + "] at " + $now + "※IFTTTへMAKERイベント不要"
exit
}
.\hh99_IFTTT_trig.ps1 $trigCommand "ディスク逼迫 at $argCompName(残量 $str)"
関連する記事・ページ
自宅PCをスマホでリモート管理(タスク管理編)
PCをリモート管理する1手法
【コードサンプル】Windowsタスクへの登録例
【コードサンプル】heartbeat.ps1 – 心音確認 PowerShell Script
【コードサンプル】1時間タスクのScript例
【コードサンプル】24時間タスクのScript例
【コードサンプル】hbJob.bat – Windows Bat Script
【コードサンプル】プロセスモニタのScript例
【コードサンプル】IFTTT経由でLINE通知するScript例
【コードサンプル】ネット転送量モニタ