首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >[rsync] 基于rsync的同步

[rsync] 基于rsync的同步

作者头像
master336
发布2026-06-15 19:34:26
发布2026-06-15 19:34:26
1050
举报

环境

Linux:CentOs7.5 rsync: 3.1.2

rsync安装

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

代码语言:javascript
复制
rsync --version
在这里插入图片描述
在这里插入图片描述

如果系统未安装,可通过如下方式安装

yum安装【建议】

使用root用户执行yum安装

代码语言:javascript
复制
yum install -y rsync

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

基于源码的安装

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

  • 下载源码
代码语言:javascript
复制
wget https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz
  • 编译及安装
代码语言:javascript
复制
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的参数信息

代码语言:javascript
复制
#!/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目录(没有可以手动创建)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2026-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境
  • rsync安装
    • yum安装【建议】
    • 基于源码的安装
  • 基于rsync的同步脚本
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档