整合rsync,编写脚本。
if [[ -x $(command -v rsync)]]; then
echo yes > /dev/null
else
echo no rsync found!
exit 1
fi
#1.获取输入参数的个数;如果没有参数,直接退出
pcount=$#;
if((pcount==0)); then
echo no args!
exit
fi
#2.获取文件名称
p1=$1;
fname=$(basename $p1)
echo fname=$fname
#3.获取文件绝对路径
pdir=$(cd -P $(dirname $p1); pwd)
echo pdir=$pdir
#4.获取当前用户名称
usr=$(whoami)
#5.循环体
for ((host=2;host<4;host++)); do
echo ---hadoop${host}---
rsync -rvl $pdir/$fname ${usr}@hadoop${host}:${pdir}
done
命令解释:
-
basename 去除文件名的目录部分和后缀部分,返回一个字符串参数的基本文件名称。
-
dirname 去除文件名中的非目录部分,仅显示与目录有关的内容。
-
whoami 用于显示自身用户名称