写一个往多个服务器上传文件的脚本
时间: 2023-08-04 22:09:22 浏览: 54
好的,以下是一个Python脚本,用于将文件上传到多个服务器:
```python
import paramiko
# 设置需要上传的文件和服务器列表
local_file_path = '/path/to/local/file'
remote_file_name = 'remote_file_name'
server_list = [
{'ip': '192.168.1.101', 'username': 'user1', 'password': 'password1'},
{'ip': '192.168.1.102', 'username': 'user2', 'password': 'password2'},
{'ip': '192.168.1.103', 'username': 'user3', 'password': 'password3'}
]
# 遍历服务器列表,逐个上传文件
for server in server_list:
try:
# 连接服务器
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(server['ip'], username=server['username'], password=server['password'])
# 创建SFTP客户端
sftp = ssh.open_sftp()
# 上传文件
remote_file_path = '/path/to/remote/directory/' + remote_file_name
sftp.put(local_file_path, remote_file_path)
# 关闭SFTP客户端和SSH连接
sftp.close()
ssh.close()
print('文件已成功上传到服务器:', server['ip'])
except Exception as e:
print('上传文件到服务器', server['ip'], '时出错:', e)
```
在这个脚本中,我们使用Paramiko库来连接服务器和上传文件。我们首先设置了需要上传的本地文件路径、远程文件名和服务器列表,然后遍历服务器列表,逐个连接服务器并上传文件。在每个服务器上,我们使用SFTP协议来创建一个SFTP客户端并上传文件。最后,我们关闭SFTP客户端和SSH连接,并打印成功上传到服务器的消息。
请注意,您需要安装Paramiko库才能运行此脚本。