免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 10673 | 回复: 3
打印 上一主题 下一主题

用securecrt的脚本功能对网络设备自动操作 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-07 13:31 |只看该作者 |倒序浏览
用securecrt的脚本功能对网络设备自动操作
    经常遇到需要对一批网络设备进行同一种操作的情况,比如备份,或者查找arp表等,用telnet一个个登上去看确实比较麻烦,于是想到是否有自动化的办法来做,编程序太麻烦改起来不方便,每天都在用securecrt这个软件做telnet客户端,有一次无意间在软件目录下发现一些脚本,原来securecrt也可以用脚本,于是有了下面这个脚本,用来自动登录到设备上去执行某个操作,并把屏幕内容记录到日志文件中供进一步处理。

DOS批处理loginall.bat:
for /f "tokens=1,2,3,4 delims= " %%i in (hostlist.txt) do securecrt /arg %%i /arg %%j /arg %%k /arg %%l /script login1.vbs

其中hostlist.txt是交换机的ip,用户名,登录密码,enable密码
举例:
172.22.1.253 user 123 123
172.22.2.253 user 123 123
172.22.3.253 user 123 123

login1.vbs是securecrt的脚本程序,仿照例子改的
#$language = "VBScript"
#$interface = "1.0"

Sub main
on error resume next
  Dim passwd
  
  ' turn on synchronous mode so we don't miss any data
  crt.Screen.Synchronous = True

If crt.Arguments.Count <> 4 Then
        MsgBox "错误:参数个数不等于4"
        Exit Sub
End If

'MsgBox "ip: " & crt.Arguments(0)
'MsgBox "username: " & crt.Arguments(1)
'MsgBox "loginpswd: " & crt.Arguments(2)
'MsgBox "enpswd: " & crt.Arguments(3)

dim ip,username,loginpswd,enpswd
ip=crt.Arguments(0)
username=crt.Arguments(1)
loginpswd =crt.Arguments(2)
enpswd =crt.Arguments(3)

'
'  crt.Session.Connect "/s 172.20.3.253"
  ' Wait for my unix login prompt or for 5 seconds whichever
  ' comes first.
  crt.Session.Connect "/TELNET "& ip &" 23"
if Err.Number <> 0 Then MsgBox "An error occurred: " & Err.Description

   ' handle the error here


'  crt.Screen.WaitForString "linux$", 5
  ' Set the name of the log file name "YYMMDD.log"
  Dim logfile
  logfile = "C:\Log%H-%Y%M%D%h%m.log"
'这是日志文件名,可以按规律自动命名
'  logfile = "C:\Log%Y%M%D%h.log"

  crt.Session.LogFileName = logfile
  ' Enable logging
  '
   crt.Session.Log True
'
  ' Wait for a string that looks like "login: " or "Login: "
  crt.Screen.WaitForString "ogin:"

  ' Send your username followed by a carriage return
  crt.Screen.Send username & VbCr

  ' Wait for a tring that looks like "password: " or "Password: "
  crt.Screen.WaitForString "assword:"
  crt.Screen.Send loginpswd & VbCr

  crt.Screen.Send "en" & VbCr
  crt.Screen.Send enpswd & VbCr

  crt.Screen.Synchronous = False

        crt.Screen.Send "sh mac" & VbCr
'这里只是举个sh mac的例子,可以改成别的命令比如show run等

  crt.Screen.Send "exit" & VbCr &"exit" & VbCr
  ' turn off synchronous mode to restore normal input processing

  ' Stop logging and disconnect.
  '
'  crt.Session.Log False
'  crt.Session.Disconnect
        crt.quit
End Sub

论坛徽章:
0
2 [报告]
发表于 2009-12-07 18:29 |只看该作者
楼主这个方法很好,很想学习,能否在说得详细些?
比如:
“DOS批处理loginall.bat:
for /f "tokens=1,2,3,4 delims= " %%i in (hostlist.txt) do securecrt /arg %%i /arg %%j /arg %%k /arg %%l /script login1.vbs”

  哪些实在widows下操作的,哪些文件是自己定义的?tokens=1,2,3,4 是什么意思呢?

论坛徽章:
0
3 [报告]
发表于 2009-12-14 19:30 |只看该作者
loginall.bat 是批处理文件,用来读取hostlist中的设备列表,调用securecrt执行脚本
hostlist.txt 是交换机列表
login1.vbs 是securecrt的执行脚本,登录交换机,执行命令,注销,执行过程中会记下日志文件,对日志文件进行分析就可以得到想要的内容了

tokens=1,2,3,4 表示在hostlist.txt 文件中有4个参数

论坛徽章:
0
4 [报告]
发表于 2009-12-14 20:35 |只看该作者
这个帖子,主题有点面熟^\

支持一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP