securecrt修改服务器时间,利用SecureCRT脚本,实现对万台服务器的批量管理

# $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========================================

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值