简单但实用的小脚本,在集群有免密登录的情况下,这个脚本方便在一个节点同步文件到其他节点,包括配置文件、目录。
创建脚本后,放到/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