“尚硅谷”的集群分发脚本

写在最前

分发脚本需要先配置主机互信,配置方法见《CentOS7配置互信,实现SSH免密登录 》

基于xsync的集群分发脚本

#! /bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if [ $pcount -lt 1 ]
then
    echo No Enough Arguement!
    exit;
fi

#2. 遍历集群所有机器
for host in hadoop02 hadoop03
do
    echo ====================    $host    ====================
    #3. 递归遍历所有目录
    for file in $@
    do
        #4 判断文件是否存在
        if [ -e $file ]
        then
            #5. 获取全路径
            pdir=$(cd -P $(dirname $file); pwd)
            echo pdir=$pdir
            
            #6. 获取当前文件的名称
            fname=$(basename $file)
            echo fname=$fname
            
            #7. 通过ssh执行命令:在$host主机上递归创建文件夹(如果存在该文件夹)
            ssh $host "source /etc/profile;mkdir -p $pdir"
            
            #8. 远程同步文件至$host主机的$USER用户的$pdir文件夹下
            rsync -av $pdir/$fname $USER@$host:$pdir
        else
            echo $file Does Not Exists!
        fi
    done
done

食用方式

  1. 创建脚本文件
    vim /home/bin/xsync
  2. 脚本粘贴进去
  3. 添加执行权限
    chmod +x xsync
  4. 拷贝到/bin下面
    cp xsync /bin
  5. 分发文件
    xsync filename/dirname

感谢

感谢“尚硅谷”的资料分享,可以让贫困的孩子能白嫖到这些知识

posted @ 2022-04-06 16:39  CodingBugs  阅读(726)  评论(0编辑  收藏  举报