...pudding - diary

この日記は https://yapud.hatenablog.com/ に引っ越し中


2011-05-17

_ [Software] PowerShell で HTTP の Status みて処理する

Windows Server 2008 使ってるなら PowerShell つかわな損やろ。いつまでも cmd.exe に頼るとかないわー。

.Net Framework で使えるような関数が一通り使えるので、通信を伴ったバッチ操作とかひょいひょい書ける。

たとえば、AサーバはBサーバの応答があるのを前提に作ってある。なのでBサーバの応答がないときはAサーバの停止処理をする必要がある。

Aサーバ内にこんな処理を書いておいて、タスクで数分おきにぐるぐるまわせば良いのじゃないかな

$req = [Net.HttpWebRequest]::Create("http://ServerB.example.com/)
$req.Method = "GET"
$req.UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"
$req.Timeout = 5000
 
$res = $req.GetResponse()
 
if ( $webRes.StatusCode -ne "OK" ){
  # ERRORの処理を書く。ServerA を止める。
  Stop-Service ServerA
}else{
  # OKの処理を書く。ServerA が止まってたら動かす。
  if ( (Get-Service ServerA).Status -ne "Running" ){
    Start-Service ServerA
  }
}
 
$res.Close()

2011年
5月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Twitter : @moriya_jp