您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python子进程-通过SSH运行多个Shell命令

Python子进程-通过SSH运行多个Shell命令

基本上,如果您调用子进程,它将创建一个本地子进程而不是一个远程子进程,因此您应该与ssh进程进行交互。因此遵循以下原则:但是请注意,如果动态构建目录,则容易受到shell注入的影响,那么END行应该是唯一标识符。为避免END行问题的唯一性,最简单的方法是使用不同的ssh命令

from __future__ import print_function,unicode_literals
import subprocess

sshProcess = subprocess.Popen(['ssh', 
                               <remote client>],
                               stdin=subprocess.PIPE, 
                               stdout = subprocess.PIPE,
                               universal_newlines=True,
                               bufsize=0)
sshProcess.stdin.write("ls .\n")
sshProcess.stdin.write("echo END\n")
sshProcess.stdin.write("uptime\n")
sshProcess.stdin.write("logout\n")
sshProcess.stdin.close()


for line in sshProcess.stdout:
    if line == "END\n":
        break
    print(line,end="")
python 2022/1/1 18:25:45 有178人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶