SecureCRT-vbs

SecureCRT-vbs  


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

' Written by Peng Xiaofeng
' @ 201107
' QQ:5876006

Const ForReading = 1
Const ForWriting = 2

Dim fso, outputpath , iplistpath , file, iplist, Str, StrIp, StrPwd
Dim loginuser
Dim index , index1 , n ,productpath

'======================path and some parameters ==========================================
  outputpath = ".\install-log.txt"   '输出文件
  iplistpath = ".\ip.txt"    'ip列表文件,每行有2列,用1个空格作为分隔符,首尾不能有多余的空格
  loginuser = "root"   '登陆用户
  productpath = "/usr/local/src"    '产品路径
'=======================define end=================================================

'=======================open file==================================================
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile(outputpath , ForWriting, True) ' result file path
Set iplist = fso.OpenTextFile(iplistpath , ForReading, False) ' ip-list file path
'========================end open==================================================

'==============================================ssh start===================================================
Sub Ssh(ip)

        crt.Screen.Synchronous = True
        On Error Resume Next
        
        cmd = "/ssh2 /L " & loginuser &" /PASSWORD " & StrPwd & " /C 3DES " & ip
        crt.Session.Connect cmd
        
        If Err.Number <> 0 Then
            file.Write " Can't connect 22 port:" & vbCr
            index = 99
            crt.Session.Disconnect
        Else
              Do
                  index = crt.Screen.WaitForStrings("#" , ">" , 10)
                  Select Case index
                          Case "0"
                                file.Write "login fail:" & loginuser
                                index = 99
                                Exit Do
                          Case "1"
                                index = 100
                                Exit Do
                          Case "2"
                                index = 100
                                Exit Do
                  End Select
              Loop
              If index <> 100 Then
               crt.Session.Disconnect
              End If
        End If
End Sub
'==============================================ssh end========================================================

'==============================================install begin==================================================
Sub Install

crt.Sleep 1000
crt.Screen.Send "cd " & productpath & vbCr
    crt.Screen.Send "LANG=en_US.UTF-8;export LANG" & vbCr
        crt.Sleep 1000                                                                         
        crt.Screen.Send "LC_ALL=en_US.UTF-8;export LC_ALL" & vbCr
        crt.Sleep 1000                                                                                                                                                                                                                                                                                                                                                                                                          
crt.Screen.Synchronous = False                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
crt.Screen.Send "uname -rsm" & vbCr     '判断系统版本                                                                                                                                                                                                                                                                                                                                                                                                                                           
Do            
    index1 = crt.Screen.WaitForStrings("Linux 2.6.18-194.el5 x86_64", "Linux 2.6.9-55.ELsmp i686", "Linux 2.6.18-194.el5 i686", "Linux 2.6.18-164.ESX x86_64", 5)                                                                                                                                                                                                                                                                                                                                                                                                         
    Select Case index1                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
            Case "0"                                                                                                                                                                                                                                                                                                                                                                                                                                
                Exit Do                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
            Case "1"
            'CENTOS5.5 64bit
                                crt.Screen.Send "wget ftp://ftp.sunet.se/pub/Linux/distributions/centos/5.6/os/x86_64/CentOS/lrzsz-0.12.20-22.1.x86_64.rpm" & vbCr
                                crt.Sleep 12000
                                crt.Screen.Send "ls" & vbCr
                                crt.sleep 1000
                                Exit Do
            Case "2"
                'RHEL4U4 32bit
                                crt.Screen.Send "ls" & vbCr
                                crt.sleep 1000
                                Exit Do                                                                                                                                                                                                                                                                                                                                                                                                                                                    
            Case "3"
             'CENTOS5.5 32bit
                                crt.Screen.Send "ls" & vbCr
                                crt.sleep 1000
                                Exit Do       
            Case "4"
                'ESX 4.1 64bit
                                crt.Screen.Send "ls" & vbCr
                                crt.sleep 1000
                                Exit Do
        End Select                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
Loop

If index1 = 0 Then                                                                                                         
file.Write " time out! : Cann't confirm os version! "                                                                                                               
Else                                                                                                                                 
crt.Screen.Send "rpm -qa|grep  rzsz" & vbCr   '判断lrzsz是否安装                                                                                                                                                                                                                                                                                                                                                                                                                                                          
 If crt.Screen.WaitForString("lrzsz", 5) = True Then
    file.Write " lrzsz Exists "
 Else
    crt.Screen.Send "ls" & vbCr     
          crt.sleep 1000                                                                                                                                                                                                                                                                                                                                                                                                                     
                crt.Screen.Send "rpm -ivh lrzsz-0.12.20-22.1.x86_64.rpm"    & vbCr  '执行安装命令
               crt.sleep 3000       
               crt.Screen.Send "ls /usr/bin/rz" & vbCr
               If crt.Screen.WaitForString("/usr/bin/rz", 5) = True Then  '判断是否安装成功
               file.Write "lrzsz install success"   '结果写进输出文件中
               crt.Screen.Send "rm -f lrzsz-0.12.20-22.1.x86_64.rpm"    & vbCr   '删除安装程序
               crt.sleep 1000
               Else
                 file.Write "lrzsz install fail"
               crt.sleep 1000
               End If                                                                
End If                                                                                                                     
End If                                                                                                                                                                                                                                                                                                                                                                                                                      
crt.Screen.Send "exit" & vbCr
End Sub
'==============================================install end=================================================

'==============================================Main begin==================================================
Sub Main

  Do While iplist.AtEndOfStream <> True
'逐行读取iplist文件,分别赋予2个变量StrIp和StrPwd
        Str = iplist.Readline
        n = InStr(Str, " ")
        StrIp = Left(Str, n)
        n = Len(Str) - n
        StrPwd = Right(Str, n)
'下面的把结果写到输出文件中          
        file.Write "Ip:" & StrIp & "-"
        Ssh StrIp
        
        If index = 99 Then                                                          
        crt.Sleep 1000
        Else
        crt.Screen.Send "id " & vbCr
            If crt.Screen.WaitForString("uid=0", 3) = True Then
                crt.Sleep 1000
                Install   '执行install过程
            End If
        End If
        crt.Session.Disconnect                                                                                                                                                                                                                                                                                                                                                                                                                                                     
        file.Write vbCrLf
  Loop
End Sub
'===============================================Main end===================================================
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值