Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我试图登录到远程主机并执行一些命令,但脚本被挂起_Python - Fatal编程技术网

Python 我试图登录到远程主机并执行一些命令,但脚本被挂起

Python 我试图登录到远程主机并执行一些命令,但脚本被挂起,python,Python,我试图登录到远程主机并尝试执行一些命令,但问题是在执行脚本后,它被挂起了。至于信息,我想用telnetlib,而不是像paramiko这样的东西。当我删除除“ls”和“exit”之外的所有命令时,它不会挂起和连接,也不会执行这两个命令。有人能解释一下我的行为吗。我做错了什么?如何解决。我希望执行所有这些命令,因为我需要通过此脚本更改远程计算机的密码 #!/usr/bin/python import telnetlib HOST = "localhost" user = 'root' ch

我试图登录到远程主机并尝试执行一些命令,但问题是在执行脚本后,它被挂起了。至于信息,我想用telnetlib,而不是像paramiko这样的东西。当我删除除“ls”和“exit”之外的所有命令时,它不会挂起和连接,也不会执行这两个命令。有人能解释一下我的行为吗。我做错了什么?如何解决。我希望执行所有这些命令,因为我需要通过此脚本更改远程计算机的密码

#!/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

我想你只是没有找到“登录”或“密码”字符串。尝试将打印语句放在代码之间,找出它的位置