简单但实用的小脚本,在集群有免密登录的情况下,这个脚本方便在一个节点同步文件到其他节点,包括配置文件、目录。

创建脚本后,放到/bin目录下,可以方便的直接调用。

用法

lsync file
lsync /etc/profile
lsyhc /opt/apps/java

脚本 

vim lsync
#!/bin/bash

# 判断参数
argscount=$#
if(($argscount==0)); then
    echo no args;
    exit;
fi

# 获取文件名
arg1=$1
filename=`basename $arg1`
echo $filename

# 获取文件上级路径
filedir=`cd -P $(dirname $filename); pwd`
echo $filedir

# 获取用户名
user=`whoami`

# 循环节点,递归传送文件
for((i=0;i<3;i++));
do
    echo -------------cdh-slave$i-------------
    rsync -av $filedir/$filename $user@cdh-slave$i:$filedir
done

修改执行权和用户组

chmod +x lsync

# 放开权限的情况下
chmod 777 lsync
chown -R root:root lsync