写一个scp往多个服务器上传文件的shell脚本
时间: 2023-08-04 14:09:22 浏览: 116
Shell中使用scp命令实现文件上传代码
好的,以下是一个Shell脚本,用于将文件上传到多个服务器:
```bash
#!/bin/bash
# 设置需要上传的文件和服务器列表
local_file_path="/path/to/local/file"
remote_file_name="remote_file_name"
server_list=(
"user1@192.168.1.101:/path/to/remote/directory"
"user2@192.168.1.102:/path/to/remote/directory"
"user3@192.168.1.103:/path/to/remote/directory"
)
# 遍历服务器列表,逐个上传文件
for server in "${server_list[@]}"; do
echo "正在上传文件到服务器:$server ..."
scp "$local_file_path" "$server/$remote_file_name"
if [ $? -eq 0 ]; then
echo "文件已成功上传到服务器:$server"
else
echo "上传文件到服务器 $server 时出错!"
fi
done
```
在这个脚本中,我们使用scp命令来连接服务器和上传文件。我们首先设置了需要上传的本地文件路径、远程文件名和服务器列表,然后遍历服务器列表,逐个上传文件。在每个服务器上,我们使用scp命令将本地文件上传到远程服务器的指定目录。如果上传成功,则打印成功上传到服务器的消息;否则,打印上传失败的消息。
请注意,您需要在本地机器上配置免密码登录到远程服务器,否则每次上传文件时都需要手动输入密码。
阅读全文