python - 使用子进程 POpen 在 SSH 后使用 STDIN 将命令写入服务器
问题描述
我认为我对子进程 stdin.write() 和 stdout.read() 有一些基本的误解
我正在尝试从 Windows 服务器连接到 linux 服务器,创建一个目录并通常运行一些其他命令以移动一些数据。我的代码在下面但是做 stdin.write() 似乎没有做任何事情。stdout.read() 返回通过 SSH 连接到服务器后自动显示在控制台窗口上的第一行、上次登录日期、服务器名称等。我在哪里出错了?
谢谢!
ssh = subprocess.Popen([plinkExe, "-ssh",
server,
"-l", username,
"-pw", password
],
shell=False,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
stdin=subprocess.PIPE)
ssh.stdin.write(b"mkdir xxx")
print(ssh.stdout.readline().decode("utf-8"))
ssh.stdin.write(b"pwd\n")
print(ssh.stdout.readline().decode("utf-8"))
ssh.kill()
解决方案
推荐阅读
- javascript - HTML 日历和 JS 问题
- java - 在短时间内将大量文件上传到 GCP 存储桶时遇到瓶颈
- javascript - 自动返回 true 到 javascript 确认框
- rest - Delphi OAuth 1.0a “单腿”身份验证
- ios - 具有相同证书的 AppStore 和 Testflight
- leaflet - Leaflet - ZoomAnimation 导致重叠的瓷砖
- html - 如何去除下边距
- javascript - 如何根据 d3 中数据的 id 创建自己的色标?
- zsh - zsh:在函数内执行任意别名
- javascript - 带有 moment.js 的 CSS 网格日历