实现代码
#!/bin/bash
path=$1
#验证路径是否存在
if [ ! -e $path ];then
echo "目录 $path 不存在,无法拷贝"
exit 0
fi
#提取父目录
par=`dirname $path`
#提取当前主机名
me=`hostname`
#提取集群中除了当前主机名的其他所有主机名
hosts=`sed -n '3,$p' /etc/hosts |awk '{print $2}'|sed -n '2,$p'`
for host in $hosts;do
# yn=`ssh root@$host "[ -e $par ] && echo yes || echo no"`
scp -r $path root@$host:$par
echo "----------拷贝 $path到 $host 成功-----------"
done
实现步骤
先判断目录是否存在,然后用指令dirname提取路径的上一级目录,接着提取免密的主机名,
最后遍历主机名,进行远程传输。