需求:循环复制文件到所有结点的相同目录下
#!/bin/bash #定义使用bash命令处理器 #1.判断参数个数 if [ $# -lt 1 ] # $#:表示返回所有脚本参数的个数 -lt:表示小于 then echo Not Enough Arguement! exit; fi #2.遍历集群所有机器 for host in hadoop102 hadoop103 hadoop104 #我这里有三台服务器,且主机名分别为hadoop102... do echo ============= $host ============= #3.遍历所有目录,挨个发送 $@:表示所有脚本参数的内容 for file in $@ #$@:表示所有脚本参数的内容 do #判断文件是否存在 if [ -e $file ] then #5.获取父目录 pdir=$(cd -P $(dirname $file); pwd) #用dirname返回file的父目录并cd -P进入直接跳到源文件目录,软连接所指向的源头目录,并获取当前路径 #6.basename获取当前文件的名称,(不包括路径)并赋给fname fname=$(basename $file) #ssh远程登陆服务器 -p 参数来创建多级文件夹 ssh $host "mkdir -p $pdir" rsync -av $pdir/$fname $host:$pdir else echo $file dose not exists! fi done done
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)