Linux集群文件分发同步脚本

    如果没有运维人员或运维软件,但是又面临在一个集群中分发一些文件,使用 scp 或者是 rsync 命令执行多次可以解决问题,那这里以 rsync 命令为基础,起一个简单的一次性分发脚本。

0、确保脚本所在的机器能够免密登录到集群其他机器

    SSH免密登录配置

1、将集群的IP都写入一个文件中

touch /root/hosts    创建一个空文件
vi /root/hosts    分行输入集群中所有机器的IP

2、编写分发脚本

touch /root/xsync.sh
vi /root/xsync.sh    输入下面的脚本代码

#!/bin/bash
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin"
for i in $(cat /root/hosts);do
  rsync -avP $1 $i:$1 &> /dev/null
  if [[ $? -eq 0 ]];then
    echo "rsync -avP $1 $i:$1 -- ok"
  else
    echo "rsync -avP $1 $i:$1 -- failed"
  fi
done

如果机器数量少,可以替换第三行语句为

for i in hadoop101 hadoop102 hadoop103;do    hadoop101是Hosts中配置的IP映射

如果机器IP配置的映射名有规律,也可以替换第三行语句为

for((i=101; i<104; i++));do

同时后面的 $i 替换为 hadoop$i 

3、测试

/root/xsync.sh /root/test    会把test同步到其余的机器的/root目录下

最后呢,这个脚本还可以继续完善,比如添加参数校验、支持相对路径等功能。

你可能感兴趣的:(Linux集群文件分发同步脚本)