我想创建一个脚本来代替在 下列出的 CentOS 系统中的一个文件/usr/bin
。
例如:我需要复制和替换从一个中心位置到多个系统的一个文件(使用 root 登录)。
小路 :/storage1/data/client /usr/bin/
有人能帮忙吗?
我的清单样本,
10.20.1.2
10.20.1.3
10.20.1.4
答案1
scp
在循环中使用怎么样for
?
for server in user1@server1 user2@server2 user3@server3
do
scp /storage1/data/client "$server":/usr/bin/
done
如果服务器已经在数组中,您可以使用:
#!/bin/bash
for server in "${servers[@]}"
do
scp /storage1/data/client "$server":/usr/bin/
done
如果在一个文件中(每行单个服务器),你可以写入:
while IFS= read -r server
do
scp /storage1/data/client "$server":/usr/bin/
done < serverfile
当然,root
如果您想连接该用户,您可以手动添加该用户(这也会删除前导和尾随的空格),如下所示:
while read server
do
scp /storage1/data/client root@"$server":/usr/bin/
done < serverfile
如果服务器数量太大,您可以同时进行复制,如下所示:
for server in user1@server1 user2@server2 user3@server3
do
scp /storage1/data/client "$server":/usr/bin/ &
done
wait