[rsync] 基于rsync的同步

环境

Linux:CentOs7.5
rsync: 3.1.2

rsync安装

一般安装系统时会自带rsync,可通过如下命令查看已经安装的版本信息

rsync --version

在这里插入图片描述
如果系统未安装,可通过如下方式安装

yum安装【建议】

使用root用户执行yum安装

yum install -y rsync

安装完毕后配置文件路径:/etc/rsyncd.conf

基于源码的安装

源码安装需要进行编译等操作,需要有gcc环境

wget https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz
  • 编译及安装
tar -xvf tar -xvf rsync-3.1.2.tar.gz
cd rsync-3.1.2
./configure --prefix=/usr/local/rsync
make && make install

完成安装后可通过设置/usr/local/rsync/rsyncd.conf (需要手动创建)进行配置

基于rsync的同步脚本

以下脚本基于ssh协议传输
注意-e参数可以指定ssh的参数信息

#!/bin/bash

#判断参数
if [ $# -lt 1 ]
then
        echo 请传入要同步的文件
exit;
fi
#要同步的目标服务器清单
for host in 192.168.1.2 192.168.1.3 192.168.1.4
do
        echo ==================== $host ====================
        #向下遍历所有目录,依次发送
        for file in $@
        do
          #获取父目录,用于创建不存在的目录
          pdir=$(cd -P $(dirname $file); pwd)
          #获取当前文件的名称
          fname=$(basename $file)
          #创建目录,如果这一步里对应的服务器没有进行免密设置,则需要输入密码
          ssh -p 50022 $host "mkdir -p $pdir"
          #执行同步,如果这一步里对应的服务器没有进行免密设置,则需要输入密码
          echo "rsync -av -e 'ssh -p 50022' $pdir/$fname hadoop@$host:$pdir"
          rsync -av -e 'ssh -p 50022' $pdir/$fname hadoop@$host:$pdir
        done
done

配置说明:
通过输出PATH的路径,将如上脚本放置到PATH中任意目录下,赋予执行权限即可在任意位置执行该脚本
如: ~/bin 当前用户的bin目录(没有可以手动创建)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值