【发布时间】:2018-01-12 16:57:13
【问题描述】:
我正在尝试自动化一个过程,在该过程中我将远程登录到路由器 A,然后从该路由器 A 我将再次远程登录到路由器 B。我有远程登录到RouterA的代码,它工作得很好,但我无法从RouterA远程登录到RouterB。会话变得无响应。我做错了什么。有人可以指导我吗?
Below is my code:
import os
import telnetlib
import re
def telNetCall():
host = "15.xx.xx.xx"
user = "admin"
password = "password"
enable_password = "enable_password"
telnet = telnetlib.Telnet(host)
telnet.read_until('Username: ', 3)
telnet.write(user + '\r')
telnet.read_until('Password: ', 3)
telnet.write(password + '\r')
telnet.write('enable' + '\r\n')
telnet.write(enable_password + '\r\n')
telnet.read_until("#")
telnet.write("telnet 20.xx.xx.xx" + '\r\n')
telnet.read_until('Username: ', 3)
telnet.write(user + '\r')
telnet.read_until('Password: ', 3)
telnet.write(password + '\r')
telnet.write('enable' + '\r\n')
telnet.write(enable_password + '\r\n')
telnet.write("show logg"+ "\r\n")
telnet.write('exit' + '\r')
a = telnet.read_all()
f = open(host, 'w')
f.write(str(a))
telNetCall()
代码正在运行,但执行需要很长时间。我相信我正在做一些不允许代码有效运行的事情。如果代码有任何问题,欢迎提出建议。非常感谢任何帮助。
我已经找出了错误,现在它对我来说工作正常。现在几乎不需要 5 秒。
【问题讨论】:
-
为什么你经常只发送回车,而不是 cr-lf?您是否尝试过手动执行此操作?你说的输出是否应该在你的脚本中?
-
感谢您的回复。我可以手动远程登录到路由器 A,然后我可以远程登录到路由器 B。它工作正常。它只是没有通过脚本发生。
-
我最近发现代码确实有效。唯一的问题是完成执行大约需要 8-9 分钟。这意味着我正在做一些不正确的事情。主要是执行最后 5 个命令需要花费大量时间。如果有人能对此有所了解,我将不胜感激。
-
您可能希望将其添加为您的问题的编辑,因为这会再次将其撞到首页。