集群分发脚本

一、安装rsync远程同步工具

rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。

rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。

基本语法:

  命令   选项参数   要拷贝的文件路径/名称   目的地用户@主机:目的地路径/名称

 

rsync    -av       $pdir/$fname             $user@$host:$pdir/$fname

# -a 归档拷贝
# -v 显示复制过程

 

二、编写脚本

在用户家目录(/home/当前用户)或者 /usr/bin 目录下创建脚本

$ vim xsync
#编写如下代码 #
!/bin/bash pcount=$# if [ $pcount -lt 1 ] then echo Not Enough Arguement! exit; fi #2. 遍历集群所有机器 # 也可以采用: # for host in hadoop{102..104}; for host in node01 node02 node03 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 "mkdir -p $pdir" #8. 远程同步文件至$host主机的$USER用户的$pdir文件夹下 rsync -av $pdir/$fname $USER@$host:$pdir else echo $file does not exists! fi done done

给脚本添加执行权限:

$ chmod +x xsync

 

posted @ 2022-02-25 15:59  干了这瓶老干妈  阅读(88)  评论(0编辑  收藏  举报
Live2D