python - subprocess.Popen vs os.system;带有交互的 ssh 命令
问题描述
我正在尝试编写一个脚本来在远程服务器上执行任务。有一个名为foo
该命令的变量存储在其中。如下所示。
foo = "ssh -t -p 200 username@remoteserver -C -Y "sudo <any command that requires sudo>"
问题
运行os.system(foo)
时,我能够从服务器获得响应,要求输入 sudo 密码。这是完美的,但是我知道使用 os.system 已经出并且 subprocess 是in。
所以我尝试切换到子进程并在运行时:
subprocess.Popen(foo, shell=True, universal_newlines=True, stdout=subprocess.PIPE).wait()
我没有从服务器收到要求我输入 sudo 密码的响应。所以最终,我爆发了,因为它不起作用。
谁能帮我解决这个问题?我到处都看过并且相信communicate()
必须使用它,但是我真的很困惑它是如何工作的。
解决方案
推荐阅读
- php - I want stored image delete when Updated with new image
- php - 为我的 Laravel 项目添加路径以用于博客
- swift - 使用 Pickerview 中的数据更改 ARKit 中的图像
- java - 在上传文件时处理数据
- file - 从不同目录kotlin中的文件导入func
- express - server.close 不是函数
- django - 配置不当 - Django
- microcontroller - Contiki Rime 堆栈如何在 Example_Broadcast 中获取广播 ID
- windows - 比较批处理文件中的字符串时如何转义命令?
- java - 如何使 Jackrabbit WebDAV servlet 允许使用 Microsoft Word 进行编辑?