有没有人知道一种简单的方法来创建一个可以连接到telnet服务器的脚本,做一些通常的telnet东西,然后注销?我正在处理不熟悉telnet的用户以及他们需要运行的命令.我想要的只是让他们双击一个脚本,并让该脚本自动执行它们的命令.
您可能想知道,"用户使用什么平台?" 它们将在Windows和Linux上运行.可以接受Perl,Java或Python等语言的实现.我看到Perl有一个Net :: Telnet模块.有人用过吗?
我理想的解决方案是创建两个脚本文件.用于Windows的BAT文件和用于Linux的shell脚本.虽然这会使双重维护成为一个问题,但这意味着我不必在每台机器上安装Perl/Java/Python /等等.不幸的是,我还没有看到任何方法来自动化批处理文件或shell脚本的telnet会话.
谢谢.
我已经使用各种方法在unix下编写telnet会话脚本,但最简单的方法可能是一系列echo和sleep命令,其输出通过管道传输到telnet.将输出管道输入另一个命令也是可能的.
愚蠢的例子
(echo password; echo "show ip route"; sleep 1; echo "quit" ) | telnet myrouter
这(基本上)检索Cisco路由器的路由表.
Expect是为此而构建的,可以处理输入/输出和超时等.请注意,如果您不是TCL风扇,则可以使用Perl/Python/Java的Expect模块.
编辑:上面的页面表明维基百科Expect条目是一个有用的资源:-)
另一种方法是使用与vatine显示的格式相同的netcat(或nc,取决于哪个posix),或者你可以创建一个文本文件,其中包含每个命令在它自己的行上.
我发现一些posix'telnet不能正确处理重定向(这就是为什么我建议netcat)
此vbs脚本重新加载cisco开关,确保在Windows上安装telnet.
Option explicit Dim oShell set oShell= Wscript.CreateObject("WScript.Shell") oShell.Run "telnet" WScript.Sleep 1000 oShell.Sendkeys "open 172.25.15.9~" WScript.Sleep 1000 oShell.Sendkeys "password~" WScript.Sleep 1000 oShell.Sendkeys "en~" WScript.Sleep 1000 oShell.Sendkeys "password~" WScript.Sleep 1000 oShell.Sendkeys "reload~" WScript.Sleep 1000 oShell.Sendkeys "~" Wscript.Quit