|
一般来说ftp做batch处理事务时非常常见的事情。那么如果Batch telnet,让我们的管理工作更加的轻松呢?
一般来说两种方法:
1、VBS法(Windows Script Host)
2、自动终端法(一些可以配置自动telnet的终端)
在这里我们讨论第一种方法:VBS法。由于Windows Script Host是系统自带的,我们不需要安装地方放软件就可以搞定。所以它一般是解决问题的首选。
首先,我们建立一个名字叫做tel.vbs的脚本,这里用telnet 到cisco路由器上作为一个例子,相关内容大家可以修改。
'建立Shell对象 set sh=WScript.CreateObject("WScript.Shell") WScript.Sleep 1000 '向telnet发送我们平时录入的命令 sh.SendKeys "open 192.168.1.1" WScript.Sleep 1000 sh.SendKeys "{ENTER}" WScript.Sleep 1000 sh.SendKeys "password{ENTER}" WScript.Sleep 1000 sh.SendKeys "en{ENTER}" WScript.Sleep 1000 sh.SendKeys "passord{ENTER}" WScript.Sleep 1000 '运行cisco的show run命令 sh.SendKeys "show run{ENTER}"
然后,建立一个batch_tel.bat的批处理文件:
rem 启动telnet start telnet.exe rem batch telnet cscript //nologo tel.vbs
最后,我们只需要运行batch_tel.bat就可以轻松搞定telnet的工作了。
对于SendKeys这个命令可以send什么,我们可以看下面的列表:
BACKSPACE {BACKSPACE}, {BS}, or {BKSP} BREAK {BREAK} CAPS LOCK {CAPSLOCK} DEL or DELETE {DELETE} or {DEL} DOWN ARROW {DOWN} END {END} ENTER {ENTER}or ~ ESC {ESC} HELP {HELP} HOME {HOME} INS or INSERT {INSERT} or {INS} LEFT ARROW {LEFT} NUM LOCK {NUMLOCK} PAGE DOWN {PGDN} PAGE UP {PGUP} PRINT SCREEN {PRTSC} RIGHT ARROW {RIGHT} SCROLL LOCK {SCROLLLOCK} TAB {TAB} UP ARROW {UP} F1 {F1} F2 {F2} F3 {F3} F4 {F4} F5 {F5} F6 {F6} F7 {F7} F8 {F8} F9 {F9} F10 {F10} F11 {F11} F12 {F12} F13 {F13} F14 {F14} F15 {F15} F16 {F16}
SHIFT + CTRL ^ ALT %
===============================================================================
我自己做的:
tel.vbs 内容
set sh=WScript.CreateObject("WScript.Shell") WScript.Sleep 1000 sh.SendKeys "open 192.168.0.1{ENTER}" WScript.Sleep 1000 sh.SendKeys "username{ENTER}" WScript.Sleep 1000 sh.SendKeys "password{ENTER}" WScript.Sleep 1000 sh.SendKeys "clear session{ENTER}" WScript.Sleep 5000 sh.SendKeys "exit{ENTER}" WScript.Sleep 1000 sh.SendKeys "{ENTER}" WScript.Sleep 1000 sh.SendKeys "quit{ENTER}"
batch_tel.bat 内容:
rem 启动telnet start telnet.exe rem batch telnet cscript //nologo tel.vbs
总结:密码如果有特殊符号用到shift的要用SHIFT + ,没测试过。
下面没测试成功。不研究了。
一。Windows平台: 复制一下代码到记事本中并另保存为autoTelnet.bat,之后双击运行就实现自动登录到telnet服务器了,服务器IP自己修改 @echo off echo set sh=WScript.CreateObject("WScript.Shell") >telnet_tmp.vbs echo WScript.Sleep 300 >>telnet_tmp.vbs echo sh.SendKeys "open 192.168.1.200" >>telnet_tmp.vbs echo WScript.Sleep 300 >>telnet_tmp.vbs echo sh.SendKeys "{ENTER}" >>telnet_tmp.vbs echo WScript.Sleep 300 >>telnet_tmp.vbs echo sh.SendKeys "engineer{ENTER}" >>telnet_tmp.vbs echo WScript.Sleep 300 >>telnet_tmp.vbs echo sh.SendKeys "ls {ENTER}">>telnet_tmp.vbs start telnet cscript //nologo telnet_tmp.vbs del telnet_tmp.vbs
附录:
对于SendKeys这个命令可以send什么,我们可以看下面的列表:
BACKSPACE {BACKSPACE}, {BS}, or {BKSP} BREAK {BREAK} CAPS LOCK {CAPSLOCK} DEL or DELETE {DELETE} or {DEL} DOWN ARROW {DOWN} END {END} ENTER {ENTER}or ~ ESC {ESC} HELP {HELP} HOME {HOME} INS or INSERT {INSERT} or {INS} LEFT ARROW {LEFT} NUM LOCK {NUMLOCK} PAGE DOWN {PGDN} PAGE UP {PGUP} PRINT SCREEN {PRTSC} RIGHT ARROW {RIGHT} SCROLL LOCK {SCROLLLOCK} TAB {TAB} UP ARROW {UP} F1 {F1} F2 {F2} F3 {F3} F4 {F4} F5 {F5} F6 {F6} F7 {F7} F8 {F8} F9 {F9} F10 {F10} F11 {F11} F12 {F12} F13 {F13} F14 {F14} F15 {F15} F16 {F16}
SHIFT + CTRL ^ ALT %
二。Linux平台
保证你的系统上存在expect这个可执行程序,保存以下代码到文件autoTelnet,并给与执行权限。详细操作察看命令expect #!/usr/bin/expect -- set SERVER "192.168.1" set USER "myusername" set PASSWD "mypass" if { $argc } { spawn telnet $SERVER.$argv } else { spawn telnet $SERVER.200 } expect "Password:" send "$PASSWD\n" expect "#" send "ls\n" interact |
|
|
|
|
|
|