基于AutoIt3的运维工具

Posted mjy2wxy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于AutoIt3的运维工具相关的知识,希望对你有一定的参考价值。

#Region ;**** 编译指令由 AutoIt3Wrapper 选项编译窗口创建 ****
#AutoIt3Wrapper_Icon=favicon.ico
#AutoIt3Wrapper_Compile_Both=y
#EndRegion ;**** 编译指令由 AutoIt3Wrapper 选项编译窗口创建 ****
; #AutoIt3Wrapper_UseX64=n
#include <Constants.au3> ; for Ping
#include <GUIConstantsEx.au3> ; for GUI
#include <IE.au3> ; for 浏览器
#include <Date.au3> ; for data


; ************** 修改版本号时,请同时修改对应网址的版本 **************
; 在 EipFunc.au3 中修改版本号
#include <SsoFunc.au3> ; 我的自定义函数

Global $logfile = EipRepairLog- & @MON & - & @MDAY &.txt
FileWriteLine($logfile, @CRLF & @YEAR & - & @MON & - & @MDAY &   & @HOUR & ":" & @MIN & ":" & @SEC) ;---------日志


; 检测操作系统位数
$myOsArch =  [ & OsArch() & 位]
; 用户界面初始化  --  版本自动更新
$headlabel = "通讯测试SSO-" & versionGet()
FileWriteLine($logfile, $headlabel) ;---------日志
GUICreate($headlabel, 400, 280)
; GUISetBkColor(0xffffff)
GUISetBkColor(0x8ef5b2)

$hostsbutton = GUICtrlCreateButton("打开hosts文件", 30, 200, 100, 30)
$eipbutton = GUICtrlCreateButton("打开SSO网址", 160, 200, 100, 30)
; $okbutton = GUICtrlCreateButton("确定", 290, 200, 70, 30)


; 检测是否内网
$isInNetStr = isInNetOrNot()
; 输出您的IP
$iplabel = "您好," & @UserName & "! 您的IP是:" & @IPAddress1 & " " & $isInNetStr & $myOsArch
FileWriteLine($logfile, $iplabel) ;---------日志
GUICtrlCreateLabel($iplabel, 30, 250)
GUISetState(@SW_SHOW)



; 判断是否云桌面用户,以切换eip网址对应的IP
; 检测是否云桌面
$isYun = 1 ; 0--CloudDesk | 1--NotCloud
$isYunStr = isCloudOrNot()
Global $testIP
If $isYun == 1 Then
    $testIP = 192.168.2.172
Else
    $testIP = 172.30.17.248
EndIf

; ping IP 并返回
$piplabel = "测试是否能连接至 " & $testIP
FileWriteLine($logfile, $piplabel) ;---------日志
GUICtrlCreateLabel($piplabel, 30, 20)
Sleep(100)
$mypiplabel = myping($testIP)
FileWriteLine($logfile, $mypiplabel) ;---------日志
GUICtrlCreateLabel($mypiplabel, 30, 40)
Sleep(100)


; 检测eip.hxgroup.com是否192.168.2.172
$tiplabel = "开始检测eip.hxgroup.com 是否 " & $testIP
FileWriteLine($logfile, $tiplabel) ;---------日志
GUICtrlCreateLabel($tiplabel, 30, 70)
Sleep(100)
$netEqualIp = tcpEqualIp("eip.hxgroup.com", $testIP); 返回 1 表示正常
Global $myHostFile = @SystemDir & "\drivers\etc\hosts"
If $netEqualIp == 1 Then
    $tcplabel = "eip.hxgroup.com 的IP地址 [ 是 ] " & $testIP
    FileWriteLine($logfile, $tcplabel) ;---------日志
    GUICtrlCreateLabel($tcplabel, 30, 90)
Else
    $tcplabel = "[ 不是 ] " & $testIP & " ,而是 " & $netEqualIp
    FileWriteLine($logfile, $tcplabel) ;---------日志
    GUICtrlCreateLabel($tcplabel, 30, 90)
    ; 写hosts文件
    GUICtrlCreateLabel("开始写入hosts文件", 30, 120)
    FileWriteLine($logfile, "开始写入hosts文件-" & $myHostFile) ;---------日志
    ; 对于64位电脑是System32文件夹路径, 对于32位是SystemWoW64路径
    ; GUICtrlCreateLabel($myHostFile, 30, 250) ; test for url
    ; 判断hosts文件是否存在
    If FileExists($myHostFile) Then
        FileWriteLine($logfile, "hosts文件已存在") ;---------日志
        GUICtrlCreateLabel("hosts文件已存在", 30, 140)
        $inhosts = strInHosts($myHostFile, $testIP, eip.hxgroup.com)
        ; 海外要添加sso.hxgroup.com 至hosts文件中
        $inhosts1 = strInHosts($myHostFile, 172.16.10.13, sso.hxgroup.com)
        FileWriteLine($logfile, $inhosts &   eip) ;---------日志
        FileWriteLine($logfile, $inhosts1 &   sso) ;---------日志
        GUICtrlCreateLabel($inhosts, 30, 160)
    Else
        FileWriteLine($logfile, "hosts文件不存在,开始新建并写入hosts文件") ;---------日志
        GUICtrlCreateLabel("hosts文件不存在,开始新建并写入hosts文件", 30, 140)
        writeHosts($myHostFile)
        FileWriteLine($logfile, "写入hosts文件完成") ;---------日志
        GUICtrlCreateLabel("写入hosts文件完成", 30, 160)
    EndIf
EndIf
Sleep(100)




; writeHosts(hosts) ; 测试写入hosts文件



While 1
  $msg = GUIGetMsg()

  Select
    Case $msg = $eipbutton
        $oIE = _IECreate("http://sso.hxgroup.com", 0, 1, 0); 打开网页
        FileWriteLine($logfile, "打开EIP-" & $oIE) ;---------日志
        ; ExitLoop
    Case $msg = $hostsbutton
        $openhosts = Run(@WindowsDir & "\Notepad.exe " &   & @SystemDir & "\drivers\etc\hosts")
        FileWriteLine($logfile, "打开hosts文件-" & $openhosts) ;---------日志
    Case $msg = $GUI_EVENT_CLOSE
        ; 关闭对话框事件
        FileWriteLine($logfile, "关闭退出" & @CRLF) ;---------日志
        FileClose($logfile)
        ExitLoop
  EndSelect
WEnd

 

以上是关于基于AutoIt3的运维工具的主要内容,如果未能解决你的问题,请参考以下文章

运维工程师使用的运维平台和工具表

运维工程师使用的运维平台和工具表

Istio的运维-诊断工具(istio 系列五)

Day770.Redis好用的运维工具 -Redis 核心技术与实战

运维人员必须熟悉的运维工具汇总

mysql运维管理(八):合格的运维管理员必须掌握的常用工具