使用python登录到linux机器并打开2个终端并执行命令

时间:2017-01-09 11:07:04

标签: python bash python-2.7 shell

我需要ssh进入linux pc并打开2个终端并在终端1中执行2命令 - 1命令,在终端2中执行另一个命令。我应该如何使用python脚本执行此操作?

TIA

1 个答案:

答案 0 :(得分:0)

使用paramiko模块: 使用paramiko.SSHClient创建连接;然后运行两次exec_command方法(两者都将在不同的通道中运行< =>两个终端;您可以按照任何顺序与它们进行交互(写入stdin句柄,从stdout和stderr句柄读取)

编辑: 对于长时间运行的命令,最好使用invoke_shell方法而不是exec_command

import paramiko
client = paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect('1.2.3.4', username='user', password='passwd')

shell1 = client.invoke_shell()
shell1.write('cmd\n')

shell2 = client.invoke_shell()
shell2.write('cmd\n')