Python 我试图登录到远程主机并执行一些命令,但脚本被挂起
我试图登录到远程主机并尝试执行一些命令,但问题是在执行脚本后,它被挂起了。至于信息,我想用telnetlib,而不是像paramiko这样的东西。当我删除除“ls”和“exit”之外的所有命令时,它不会挂起和连接,也不会执行这两个命令。有人能解释一下我的行为吗。我做错了什么?如何解决。我希望执行所有这些命令,因为我需要通过此脚本更改远程计算机的密码Python 我试图登录到远程主机并执行一些命令,但脚本被挂起,python,Python,我试图登录到远程主机并尝试执行一些命令,但问题是在执行脚本后,它被挂起了。至于信息,我想用telnetlib,而不是像paramiko这样的东西。当我删除除“ls”和“exit”之外的所有命令时,它不会挂起和连接,也不会执行这两个命令。有人能解释一下我的行为吗。我做错了什么?如何解决。我希望执行所有这些命令,因为我需要通过此脚本更改远程计算机的密码 #!/usr/bin/python import telnetlib HOST = "localhost" user = 'root' ch
#!/usr/bin/python
import telnetlib
HOST = "localhost"
user = 'root'
chpassword = 'ddfvt123'
password = 'passw0rd'
tn = telnetlib.Telnet(HOST)
tn.read_until("login: ")
tn.write(user + "\n")
if password:
tn.read_until("Password: ")
tn.write(password + "\n")
tn.write("ls\n")
tn.write("chpasswd -c\n")
tn.write("{}:{}".format(user, chpassword))
tn.write("\cD")
tn.write("exit\n")
print tn.read_all()
Telnet实例具有以下方法:
Telnet.read_直到(预期[,超时])
读取,直到遇到给定字符串预期值
,或者直到超时时间
秒过去
如果没有找到匹配项,则返回可用的内容,可能是空字符串。如果连接已关闭且没有现成数据可用,则升高EOFError
我想你只是没有找到“登录”或“密码”字符串。尝试将打印语句放在代码之间,找出它的位置