やりたいこと
- pingを定期的に投げる
- 時刻(とくに時分秒)を出力する
- pingの結果は1行で見やすく
- 色も付けてみる
- powershellで書く
powershellスクリプト
ping_check.ps1
# ターゲットは引数で指定 $tgt = $Args[0] Write-Host "$tgt へのping応答チェック" # 無限ループ for (;;) { $dt = Get-Date # pingはオプション無しなので、4回送信 $rs = ping $tgt for($line in $rs) { if ($line.Contains("パケット数")){ if ($line.Contains("損失 = 0")){ # 損失 = 0、つまりping応答がすべてあった場合、文字を緑色で表示 Write-Host ($d, $line) -ForegroundColor Green }else{ # 4回のうち1つでも応答がなかった場合、文字を赤くして表示 Write-Host ($d, $line) -ForegroundColor Red } } } # 60秒待機 Start-Sleep -Seconds 60 }
実行と実行結果イメージ
PS> .\ping_check.ps1 192.168.1.1
192.168.1.1 へのping応答チェック
2023/01/25 10:00:01 パケット数: 送信 = 4、受信 = 0、損失 = 4 (100%の損失)、
2023/01/25 10:01:02 パケット数: 送信 = 4、受信 = 2、損失 = 2 (50%の損失)、
2023/01/25 10:02:02 パケット数: 送信 = 4、受信 = 4、損失 = 0 (0%の損失)、
2023/01/25 10:03:02 パケット数: 送信 = 4、受信 = 4、損失 = 0 (0%の損失)、
2023/01/25 10:03:03 パケット数: 送信 = 4、受信 = 4、損失 = 0 (0%の損失)、
2023/01/25 10:04:02 パケット数: 送信 = 4、受信 = 4、損失 = 0 (0%の損失)、
2023/01/25 10:05:02 パケット数: 送信 = 4、受信 = 4、損失 = 0 (0%の損失)、