【运维开发】基于powershell的运维UI工具(二)

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
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值