如何在Windows中创建3个命令提示实例,并使用python并行向每个提示传递命令

时间:2012-03-19 13:14:44

标签: python python-3.x multiprocessing

我目前正在使用python 3.2,我想编写一个代码,在Windows中生成3个命令提示符实例。然后,我需要使用Plink(putty)在每个命令提示中访问不同的服务器,并在每个命令提示中并行运行耗时的程序。虽然我能够创建三个命令提示实例,但我无法向这些提示发送命令。有没有办法这样做?我应该为此目的使用多处理/多线程吗?

我编写了以下用于创建命令提示的代码。有没有办法将命令传递给每个提示?

def Plink():
    name = multiprocessing.current_process().name
    proc = subprocess.Popen("C:\\Windows\\System32\\cmd.exe")

if __name__ == '__main__':
    Plink_1 = multiprocessing.Process(name='Plink 1', target=Plink)
    Plink_2 = multiprocessing.Process(name='Plink 2', target=Plink)
    Plink_3 = multiprocessing.Process(name='Plink 3', target=Plink)

    Plink_1.start()
    Plink_2.start()
    Plink_3.start()

1 个答案:

答案 0 :(得分:1)

嗯,什么?

import subprocess
def make_shells(n):
    for i in range(n):
         subprocess.Popen(["cmd.exe"])

您想要做的不是通常所说的“多处理”......

使用Paramiko

以下是如何使用paramiko连接到远程SSH服务器并运行命令。

import paramiko
def run_ls_la():
    client = paramiko.SSHClient()
    client.connect("myssh.server.org", username="foo", password="bar")
    stdin, stdout, stderr = client.exec_command("ls -la")
    print(stdout.read())

您也可以使用公钥身份验证,查看文档。