Shell集群分发脚本

#!/bin/bash
#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 获取当前用户名称
user=`whoami`

#5 循环集群分发
for i in hadoop102 hadoop103 hadoop104
    do
        echo ------------------- $i--------------
        rsync -rvl $pdir/$fname $user@$i:$pdir
    done

$#表示获取输入参数的个数
$1表示获取输入的第一个参数
$fname表示获取fname的值
'命令’表示执行单引号中的命令
basename表示获取文件名
dirname表示获取文件名上级目录的绝对路径
cd -P 表示切换到硬连接目录

你可能感兴趣的:(Shell,shell)