Gon*_*n3s 6 python paramiko python-3.x
我干了一个 Python 脚本。我为给定的 IP 创建了一个 Python 脚本,它将通过 Paramiko 连接到服务器以执行另一个 Python 脚本。
这是一些代码:
self._client = paramiko.SSHClient()
self._client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
self._client.connect(self._ip, username=self._server['username'], password=self._server['password'])
channel = self._client.get_transport().open_session()
channel.exec_command('python3 /tmp/scrap.py /tmp/' + self._ip + '.txt 0 1')
Run Code Online (Sandbox Code Playgroud)
脚本“scrap.py”每 X 秒在远程机器的控制台中返回一行,但是我无法在上面脚本中的这些行中恢复(在 exec_command (. ..) 的退出时)。
这是可能的,如果是,你知道怎么做吗?
先感谢您。
这应该可以解决问题:
stdin, stdout, stderr = channel.exec_command("python myScript.py")
stdin.close()
for line in iter(lambda: stdout.readline(2048), ""):
print(line, end="")
Run Code Online (Sandbox Code Playgroud)
正如 read([size]) 文档中所指定的,如果您不指定大小,它将读取直到 EOF,这使得脚本在从 read() 返回并打印任何输出之前等待命令结束。