python并行操作多个linux服务器
时间: 2023-10-13 22:22:56 浏览: 188
基于python的Linux系统指定进程性能监控思路详解
要在Python中并行操作多个Linux服务器,可以使用Python的并发库,例如multiprocessing、threading和concurrent.futures。同时,需要使用SSH客户端库,例如paramiko或Fabric,来与Linux服务器进行通信。
以下是一个基本的示例,使用paramiko和multiprocessing库来并行执行命令:
```python
import paramiko
import multiprocessing
def run_command(server, command):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(server, username='username', password='password')
stdin, stdout, stderr = ssh.exec_command(command)
print(f"Results from {server}: {stdout.read().decode('utf-8').strip()}")
ssh.close()
servers = ['server1', 'server2', 'server3']
command = 'ls'
pool = multiprocessing.Pool(processes=len(servers))
for server in servers:
pool.apply_async(run_command, args=(server, command))
pool.close()
pool.join()
```
在此示例中,我们使用paramiko连接到每个服务器并执行命令。使用multiprocessing.Pool创建多个进程,每个进程都使用SSH连接并在不同的服务器上运行命令。最后,我们等待所有进程完成。
需要注意的是,这只是一个基本示例,实际应用中还需要考虑服务器的身份验证、错误处理以及连接超时等问题。
阅读全文