tab2 服务控制
选择服务和主机群
同样目标服务器和服务的下拉菜单都支持正则表达,也有使用到了在上篇新增的主机清单 server.ini
停止,启动,重启,状态检查
以现有的公司情况,常规更新后都需要对相关服务进行重启。遇到主机量较大,同类服务数较多时,靠逐台登录更新真的要人命,绝对忍不了的我不甘心就此沉沦。
这一页其实很简单,就像网页一样。
$svcdestbox.top =0; $svcdestbox.width =280;$svcdestbox.text = '目标服务器...';$svcdestbox.height=25
$servicebox.top= 23; $servicebox.width =280;$servicebox.text = '选择服务...';$servicebox.height=25
$svcstatusbtn.Text = '状态检查';$svcstatusbtn.left = 285;$svcstatusbtn.Width = 140;$svcstatusbtn.height = 33
$svcrestartbtn.Text = '重启'; $svcrestartbtn.top= 35 ; $svcrestartbtn.Width = 140;$svcrestartbtn.left = 285; $svcrestartbtn.height=33
$svcstopbtn.Text = '停止'; $svcstopbtn.top= 45 ; $svcstopbtn.Width = 140;$svcstopbtn.left = 0
$svcstartbtn.Text = '启动'; $svcstartbtn.top= 45 ; $svcstartbtn.Width = 140;$svcstartbtn.left = 142
$servicebox.Items.Add('Ice_webtcdata*')
$servicebox.Items.Add('Ice_optreal')
$servicebox.Items.Add('Ice_*')
$servicebox.Items.Add('Ice_GQSvcCTPFUT*')
$servicebox.Items.Add('Icelinker')
$svcdestbox.Items.Add('tcdata')
$svcdestbox.Items.Add('gqctp')
$svcdestbox.Items.Add('icm')
#page2 controls
$svcdestbox.add_lostfocus({
if($svcdestbox.Text -eq ''){
$svcdestbox.Text =$svcdestbox.SelectedItem
}
})
$servicebox.add_lostfocus({
if($servicebox.Text -eq ''){
$servicebox.Text =$servicebox.SelectedItem
}
})
$svcstatusbtn.add_click({ ##检查指定服务状态
$resulttextbox.text = "检查中。。。 "
$error.Clear()
get-remotesvc -server $svcdestbox.text -svc $servicebox.text |out-string -stream | foreach { $resulttextbox.lines = $resulttextbox.lines + $_; $powershellforms.update()}
$resulttextbox.lines = $resulttextbox.lines + $error
})
$svcrestartbtn.add_click({ ##重启指定服务
$resulttextbox.text = "执行中。。。 "
$error.Clear()
restart-remotesvcs -server $svcdestbox.text -svc $servicebox.text |out-string -stream | foreach { $resulttextbox.lines = $resulttextbox.lines + $_; $powershellforms.update()}
$resulttextbox.lines = $resulttextbox.lines + $error
})
$svcstopbtn.add_click({ ##停止指定服务
$resulttextbox.text = "检查中。。。 "
$error.Clear()
$cmdstr = "stop-service "+$servicebox.text
Invoke-multicmds $cmdstr $svcdestbox.Text |out-string -stream | foreach { $resulttextbox.lines = $resulttextbox.lines + $_; $powershellforms.update()}
$resulttextbox.lines = $resulttextbox.lines + $error
})
$svcstartbtn.add_click({ ##启动指定服务
$resulttextbox.text = "执行中。。。 "
$error.Clear()
$cmdstr = "start-service "+$servicebox.text
invoke-multicmds $cmdstr $svcdestbox.Text |out-string -stream | foreach { $resulttextbox.lines = $resulttextbox.lines + $_; $powershellforms.update()}
$resulttextbox.lines = $resulttextbox.lines + $error
})
$servicepage.controls.add($svcdestbox)
$servicepage.controls.add($servicebox)
$servicepage.controls.add($svcstatusbtn)
$servicepage.controls.add($svcrestartbtn)
$servicepage.controls.add($svcstopbtn)
$servicepage.controls.add($svcstartbtn)
tab3 数据检查
这一页可以用来检查数据一致性,这里先介绍高亮的功能吧。
基本原理就是先设定主机群和商品参数,通过invoke-webrequest 来访问各个主机的特定链接,将结果简化后进行集中显示,从而达到快速确认主机结果或状态的目的。代码也是非常简单。
$ta_gqhotmapbtn.add_click({
$resulttextbox.TEXT = check-gqhotmap $ta_gqproduct.text
})
FUNCTION check-gqhotmap{
[CmdletBinding()]
[OutputType([int])]
Param
(
[parameter(position=1)][string]
$product
)
$list= ("xxxxxxm.cn","gxxxxxm.cn","g2xxxxxxm.cn")
foreach($x in $list){
$u = "$x/xxx-bin/xxxxxxp.cgi?ARG=$product&p=1"
$result = Invoke-WebRequest -uri $u
$a +="$x :"+ $result.content -replace "<.*>"
}
$a
}