我正在尝试创建一个关闭脚本来远程关闭一些服务器;我已经启用了telnet,当使用PuTTY或类似工具时,运行关闭过程很简单。你知道吗
我尝试使用以下Python脚本实现自动化:
import telnetlib
doReadWrite(tn, wrt, rd):
if wrt is not None:
tn.write(wrt)
if rd is not None:
return tn.read_until(rd)
ip_list = [list of IP addresses]
for ip in ip_list:
server = telnetlib.Telnet(ip)
doReadWrite(server, None, b'login: ')
doReadWrite(server, username+b'\r\n', b'Password: ')
doReadWrite(server, password+b'\r\n', b'$')
doReadWrite(server, b'su\r\n', b'Password: ')
doReadWrite(server, root_pass+b'\r\n', b'#')
doReadWrite(server, b'/sbin/halt\r\n', None)
server.close()
如果我在交互式shell中逐行输入上面的脚本,它将按预期工作,但是如果我从命令行运行它,即python shutdown_脚本.py,它将挂起;如果指定超时,则会出现超时错误。 如果我显式地以python2.7的形式运行脚本,那么它工作得很好,目前是一个可以接受的解决方案。你知道吗
交互shell中命令的执行与导致这种行为差异的命令行interpreter之间有什么区别?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐