##一.修改dynagen.ini配置文件
#1.注释掉原本telnet使用的putty
#telnet = start ../bin/putty/putty %h %p#2.添加SecureCRT启动信息
telnet = start C:\SecureCRT\SecureCRT.exe /SCRIPT C:\Users\dell\Desktop\Dynamips@EDURainbow\bin\dynagen/crt_py.py /T /telnet %h %p
C:\SecureCRT\SecureCRT.exe ->>SecureCRT所在位置
C:\Users\dell\Desktop\Dynamips@EDURainbow\bin\dynagen/crt_py.py ->>python小脚本所在位置
/T ->>在同一个标签下打开
python脚本:crt_py.py
# $language = "Python" # $interface = "1.0" #Connected to Dynamips VM "R1" (ID 0, type c7200) - Console port def main(): crt.Screen.Synchronous = True if crt.Screen.WaitForString("Console port"): crt.Screen.Send('\r') prompt=crt.Screen.Get(1,0,2,80) #获取第一第二行数据,由于刚出来信息可能在第一行或第二行 hostname=prompt.strip().split()[4].strip('"') #抽取hostname信息 crt.Window.Caption= hostname if crt.Screen.WaitForString("[yes/no]:"): crt.Screen.Send("no\r") crt.Screen.Send("\r") while(1): crt.Sleep(5) if crt.Screen.WaitForString("Router>"): crt.Screen.Send('\r') crt.Screen.Send('en\r') crt.Screen.Send('conf t\r') crt.Screen.Send('hostname %s\r' %hostname) crt.Screen.Send('no ip domain-lookup\r') crt.Screen.Send('line con 0\r') crt.Screen.Send('logg synchronous\r') crt.Screen.Send('no exec-timeout\r') crt.Screen.Send('exit\r') crt.Screen.Clear() break main()
SecureCRT支持VBScript,而SecureCRT6.6版本才支持Python脚本,所以要想成功运行,需要查看自己的SecureCRT版本。
如果版本不满足,可更新,这里是我的网盘下载地址:点击打开链接
http://115.com/file/dplhs3qt#SecureCRT_6.7.3-x86.rar
怎样在Windows中自动登录一台服务器并执行相关工作呢?
###:以telnet方式:
新建一批处理文件:cs_telnet.bat
@echo off start C:\SecureCRT\SecureCRT.exe /SCRIPT C:\Users\dell\Desktop\Dynamips@EDURainbow\cs.py新建一Python脚本:
# $language = "Python" # $interface = "1.0" def main(): crt.Screen.Synchronous = True crt.Session.Connect("/TELNET 214.25.28.25 23") #23号端口 crt.Screen.WaitForString("login:") crt.Screen.Send("veyun\r") crt.Screen.WaitForString("word:") crt.Screen.Send("XXXXXXXX\r") #password crt.Screen.Send("ls\r") crt.Screen.Synchronous = False main()然后双击cs.bat即可登录并运行。
###以ssh登录:
将Python脚本修改为:
# $language = "python" # $interface = "1.0" def main(): cmd = "/SSH2 /L %s /PASSWORD %s /C 3DES /M MD5 %s" % ('veyun', 'XXXXXX', '214.25.28.25') crt.Session.Connect(cmd) main()