自动化脚本之SCRT

        将脚本与SecCRT结合起来可以实现SecCRT输入、输出、字符处理的完全自动化。对于少量的命令,可以直接通过SecCRT提供的快捷键设置方式完成。而对于复杂的命令,则可以自己编写代码来实现。将原本两三天的测试工作量压缩到半天也是可能的。

        下面的VB脚本例子是使用SecCRT API实现自动登录、进入前台单板各进程,获取进程号,输入各相关命令,同时可以保存日志的操作。依靠快捷键是无法完成这样工作的。它与具体的前台操作模型是精密关联的,往往需要根据前台终端命令操作方式进行编写。


       SecCRT一般支持VB和JavaScript两种解释语言,在SecCRT的帮助文件中有详细描述,并且SecCRT也提供了多个例子供大家学习。


# $language = "VBScript"
# $interface = "1.0"

'--------------------------------------------------------
'          Automatic VBS for Security CRT
'          Author: Raymond
'          2011.1.5.
'--------------------------------------------------------


'--------------------------------------------------------
'                  Config The Followings:
'--------------------------------------------------------
'File Log
Const logFile = "c:\scrt_logfile.txt"

Dim IPs         'Board IP
IPs = Array("128.131.17.167")

'Cmd 1
Dim shObj1
Set shObj1 = New shClass
shObj1.shName = "SBCJ_PS_MP"
shObj1.shCmd = Array("mmeEMMClearStatistic{(}{)}","mmeESMDebugClearStatistic{(}{)}")

'Cmd 2
Dim shObj2
Set shObj2 = New shClass
shObj2.shName = "EPU"
shObj2.shCmd = Array("stt_clear_sctp{(}{)}","stt_clear_sctplink{(}{)}")

'All Cmds
Dim shObjs
shObjs = Array(shObj1)

'--------------------------------------------------------
'                      Config End
'--------------------------------------------------------
Dim g_fso
Set g_fso = CreateObject("Scripting.FileSystemObject")
Const ForAppending = 8

'---------------------------------------------------
'Sh CMD Class
'---------------------------------------------------
Class shClass
    Public shName   'sh Name, String
    Public shCmd    'Cmd String Array in this sh
    
    Private Sub Class_Initialize
    End Sub
    Private Sub Class_Terminate ' 设置 Terminate 事件.
    End Sub
End Class

'---------------------------------------------------
'Compare the patrn in this String 
'---------------------------------------------------
Function RegExpTest(patrn, strng)
  Dim regEx, Match, Matches   ' 建立变量。
  Set regEx = New RegExp   ' 建立正则表达式。
  regEx.Pattern = patrn       ' 设置模式。
  regEx.IgnoreCase = True   ' 设置是否区分大小写。
  regEx.Global = True    ' 设置全局替换。
  Set Matches = regEx.Execute(strng)  ' 执行搜索。
  isFind = 0
  For Each Match in Matches   ' 遍历 Matches 集合。
    RegExpTest = 1
    Exit Function
  Next
  RegExpTest = 0
End Function


'---------------------------------------------------
'Get Sh No. List
'---------------------------------------------------
Function GetShNum(inStr, strName)
    Dim strArray,strList,strItem,i
    ReDim rtn(8)
    strArray = Split(inStr, vbcrlf, -1, 1)
    i=0
    For Each strList In strArray
        strItem = Split(strList, " ", -1, 1)
        If Ubound(strItem) > 5 Then
            If RegExpTest(strName,strList) = 1 Then
                rtn(i)=strItem(0)
                i=i+1
            End If
        End If
    Next
    ReDim Preserve rtn(i)
    GetShNum = rtn
End Function


Dim Session,proStr
'---------------------------------------------------
'Stata One Tab
'---------------------------------------------------
Function StatTab(Ipaddr)
    Dim Str
    Set tab = crt.session.ConnectInTab("/telnet " & Ipaddr & " 10000",True)
    If Err.Number <> 0 Then
        WriteToFile "Error: Open Tab " & Ipaddr & " Failed !"
        tab.Close
        Exit Function
    Else
        tab.Caption=Ipaddr
    End If
    
    'Get Screen, login
    Set Screen = tab.Screen
    
'    If Screen.WaitForString("login:", 10) <> True Then
'        WriteToFile "Failed to detect login : " & Ipaddr
'        Exit Function
'    End If
    crt.Sleep 50
    Screen.sendkeys("zte{ENTER}")
    
'    If Screen.WaitForString("password:", 10) <> True Then
'        WriteToFile "Failed to detect password : " & Ipaddr
'        Exit Function
'    End If
  crt.Sleep 50
    Screen.sendkeys("zte{ENTER}")
    
    WriteToFile "Log: telnet " & Ipaddr & " Successed !"
    If Screen.WaitForString("ushell!", 1000) <> True Then
        WriteToFile "Failed to detect ushell : " & Ipaddr
        Exit Function
    End If
    
    Screen.sendkeys("{ENTER}")
    crt.Sleep 50
    proStr=""
    While Len(proStr) < 10                          '没有取到内容,继续....
        Screen.sendkeys("show{ENTER}{ENTER}")
        proStr = Screen.ReadString("[admin]#",10)    '保留到该函数结束
    Wend
    
    WriteToFile "Get All Proc List"
    WriteToFile proStr

    '对所有配置的命令,查找相应的进程号,并执行
    
    Dim tmpObj,shItem,shList,cmdItem
    
    For each tmpObj in shObjs
        shList = GetShNum(proStr,tmpObj.shName)
        'WriteToFile "Bound is " & UBound(shList)
        For Each shItem In shList
            If Len(shItem) <> 0 Then
                '进入该进程
                Screen.sendkeys("sh "& shItem & "{ENTER}{ENTER}")
                If Screen.WaitForString("Now switch to", 1000) <> True Then
                    WriteToFile "Failed to switch to ushell " & shItem & " in " & Ipaddr
                Else
                    WriteToFile "Switch to shell " & shItem & " in " & Ipaddr
                    '循环执行命令
                    For Each cmdItem in tmpObj.shCmd
                        Screen.sendkeys(Trim(cmdItem) & "{ENTER}{ENTER}")
                        If Screen.WaitForString("value", 1000) <> True Then
                            WriteToFile "Failed to Exec Cmd " & cmdItem & " in " & Ipaddr
                        Else
                            WriteToFile "Succeed to Exec Cmd " & cmdItem & " in " & Ipaddr
                        End If
                        crt.Sleep 200
                    Next
                End If
                
                Screen.sendkeys("admin{ENTER}{ENTER}")  '退出到最外层
                If Screen.WaitForString("Reset to [admin]", 1000) <> True Then
                    WriteToFile "Failed to switch to Admin " & " in " & Ipaddr
                    Exit Function
                End If
                crt.Sleep 200
            End If
        Next
    Next

    Screen.sendkeys("{ENTER}{ENTER}")  'Goodbye
    WriteToFile "Finished " & Ipaddr
End Function


'---------------------------------------------------
'State All Tabs, each IP every tab
'---------------------------------------------------
Sub StatAllTabs
    Dim ip
    For Each ip in IPs
        StatTab(ip)
        crt.Sleep 1000
    Next
End Sub


'---------------------------------------------------
'Log File Open
'---------------------------------------------------
Const bUnicode = False
Dim objFile
Function OpenFile(szFile)
    Set bjFile = g_fso.OpenTextFile(szFile, ForAppending, True, bUnicode)
End Function


'---------------------------------------------------
'Log File Close
'---------------------------------------------------
Function CloseFile()
    objFile.Close
End Function


'---------------------------------------------------
'Write to File
'---------------------------------------------------
Function WriteToFile(szData)
    WriteToFile = False

    objFile.Write szData
    objFile.Write vbcrlf

    WriteToFile = True
End Function


'Main
Sub Main
    OpenFile(logFile)
    StatAllTabs
    CloseFile
End Sub


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: scrt_sfx_x64是SecureCRT关于Windows 64位操作系统的自解压执行文件。SecureCRT是一款由VanDyke Software开发的用于终端仿真和SSH、Telnet、rlogin、串行和TAPI等网络协议连接的客户端软件。 scrt_sfx_x64含有所有SecureCRT软件所需的文件和配置信息,可以在Windows 64位操作系统上直接运行,而无需手动安装。它能够自动将SecureCRT所需的文件提取出来,并安装到正确的目录和位置。 使用scrt_sfx_x64可以方便地将SecureCRT部署到多个机器上,并保持统一的配置。只需要执行scrt_sfx_x64文件,即可完成软件的安装和设置,避免了手动逐个安装的繁琐过程。 在进行SecureCRT的自解压安装时,用户可以选择安装软件的路径、设置快捷方式等。安装完成后,用户只需双击桌面上的SecureCRT图标,即可打开软件并开始配置连接信息。 总之,scrt_sfx_x64是SecureCRT在Windows 64位操作系统上的自解压执行文件,能够方便地将软件部署到多台机器上并进行统一的设置和配置。通过执行scrt_sfx_x64,用户可以快速安装和使用SecureCRT,并方便地连接各种网络协议。 ### 回答2: scrt_sfx_x64是指SecureCRT自解压程序的64位版本。SecureCRT是一种功能强大的终端仿真软件,用于远程访问和管理计算机系统。而scrt_sfx_x64则是SecureCRT的一个组成部分,它允许将SecureCRT打包为自解压程序,使得用户无需安装SecureCRT即可直接运行。 使用scrt_sfx_x64有以下几个优点。首先,它简化了SecureCRT的部署过程,用户无需在每台计算机上逐个安装SecureCRT,只需将scrt_sfx_x64部署到所需的计算机上即可。其次,scrt_sfx_x64可以通过密码保护或数字签名等安全措施,保护程序免受恶意篡改或未经授权的访问。最后,scrt_sfx_x64支持64位系统,充分利用计算机硬件的处理能力,提供更高的性能和效率。 要使用scrt_sfx_x64,只需要下载并解压缩该文件,然后运行其中的可执行文件即可。在运行过程中,用户可以根据需要进行一些配置,例如输入目标主机的IP地址和端口号,选择连接方式(如SSH、Telnet或串口)等。一旦连接成功,用户就可以通过SecureCRT的图形界面来进行远程操作,比如执行命令、传输文件和进行会话管理等。 总之,scrt_sfx_x64是SecureCRT的64位自解压程序,它简化了SecureCRT的部署过程,提供了更高的安全性和性能,并通过图形界面来方便用户进行远程访问和管理计算机系统。 ### 回答3: scrt_sfx_x64是一个软件的文件名,其中scrt表示SecureCRT的缩写,是一款功能强大的SSH(Secure Shell)客户端软件;sfx是Self-Extracting Archive的缩写,表示自解压缩归档文件;x64表示该文件适用于64位的操作系统。 SecureCRT是一种用于连接和管理远程计算机的工具。它支持SSH、Telnet、串口和其他协议,可实现安全的远程会话。SecureCRT可以用于远程登陆到服务器、路由器和其他网络设备,通过远程管理来执行维护、配置和故障排除。 sfx文件是一种自解压缩文件,通常用于将多个文件打包成一个可执行程序,方便在没有压缩软件的情况下解压缩文件。当运行该sfx文件时,它会自动解压缩并执行预先设定的操作。 x64表示该文件适用于64位的操作系统。64位操作系统相比32位操作系统具有更大的内存寻址空间和更高的性能,可以更好地支持大型软件和处理大量数据。 综上所述,scrt_sfx_x64是一个SecureCRT的自解压缩归档文件,适用于64位的操作系统。用户可以使用该文件来进行远程计算机连接和管理的工作,解压缩并执行其中的内容以获得必要的功能和操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值