rsync的同步拉取使用

博客介绍了Linux环境下两台机器指定目录(如/usr/local/nginx/html/)的数据同步方法。包括拉取同步(定时)和推送同步(实时)的配置流程,还提及若无需用户密码验证的处理方式,最后介绍了使用inotify - tool监控的安装及简单实验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

条件

两台机器的指定目录,这里以/usr/local/nginx/html/为例
被同步的机器(服务端):192.168.10.105
拉取数据的机器(客户端):192.168.10.106

安装
yum install -y rsync
拉取同步,定时
  • 配置105服务器并启动

    #操作配置文件
    vim /etc/rsyncd.conf
    
    # See rsyncd.conf man page for more options.
    
    # configuration example:
    
    # uid = nobody
    # gid = nobody
    # use chroot = yes
    # max connections = 4
    # pid file = /var/run/rsyncd.pid
    # exclude = lost+found/
    # transfer logging = yes
    # timeout = 900
    # ignore nonreadable = yes
    # dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
    
    #rsync安全验证
    auth users=admin
    secrets file=/etc/rsyncd.pwd
    
    #服务名
    [ftp]
    	#被监听同步的目录
      	path = /usr/local/nginx/html/
    
    #/etc/rsyncd.pwd的内容,用户名:密码
    admin:123
    
    #将/etc/rsyncd.pwd文件降权
    chmod 600 /etc/rsyncd.pwd
    #启动rsync后台进程
    rsync --daemon
    
  • 操作106同步数据

    #配置一个客户端密码文件 /etc/rsyncd.pwd.client 内容就是密码
    123456
    
    #修改密码文件权限
    chmod 600 /etc/rsyncd.pwd.client
    #查看105对应服务目录下的文件列表,不加file配置,输入密码123456
    rsync --list-only --password-file=/etc/rsyncd.pwd.client admin@192.168.10.105::ftp/
    
    #增量同步命令,输入密码123456
    rsync -avz --password-file=/etc/rsyncd.pwd.client admin@192.168.10.105::ftp/ /usr/local/nginx/html/
    #完全同步,删除了命令也会同步删除
    rsync -avz --delete --password-file=/etc/rsyncd.pwd.client admin@192.168.10.105::ftp/ /usr/local/nginx/html/
    
  • 如果不需要用户密码验证,去掉服务端和客户端中的验证相关的配置和文件即可,客户端命令变化一下

    rsync --list-only 192.168.10.105::ftp/
    
    rsync -avz 192.168.10.105::ftp/ /usr/local/nginx/html/
    
推送同步,实时
  • 106服务器接收,启动rsync后台进程

    配置流程和上面拉取同步配置105一样,些许不一样

    # See rsyncd.conf man page for more options.
    
    # configuration example:
    
    #如果使用其他用户和组得修改同步目录得权限
    uid = root
    gid = root
    # use chroot = yes
    # max connections = 4
    # pid file = /var/run/rsyncd.pid
    # exclude = lost+found/
    # transfer logging = yes
    # timeout = 900
    # ignore nonreadable = yes
    # dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
    
    #rsync安全验证
    auth users=admin
    secrets file=/etc/rsyncd.pwd
    #关掉默认只读,允许外部提交文件
    read only=no
    #服务名
    [ftp]
    	#被监听同步的目录
      	path = /usr/local/nginx/html/
    
  • 105作为客户端执行命令

    #查看106指定ftp服务目录文件列表
    rsync --list-only --password-file=/etc/rsyncd.pwd.client admin@192.168.10.106::ftp/
    #将105指定文件夹推送到ftp服务目录
    rsync -avz --password-file=/etc/rsyncd.pwd.client /usr/local/nginx/html/ admin@192.168.10.106::ftp/ 
    rsync -avz --delete --password-file=/etc/rsyncd.pwd.client /usr/local/nginx/html/ admin@192.168.10.106::ftp/ 
    
使用inotify-tool监控
  • 安装

    #先装一下自动编译工具
    yum install -y automake
    #下载安装包解压
    tar -zxvf inotify-tools-3.22.6.0.tar.gz
    #进入源文件目录,这一步依赖上面的工具
    ./autogen.sh
    #这里如果出现缺少依赖的需要自己安装一下
    ./configure --prefix=/usr/local/inotify/
    #最后,分开执行也可
    make && make install
    
  • 客户端105服务器使用脚本,简单实验

    #创建一个sh
    vim /root/inotify_auto.sh
    chmod +x /root/inotify_auto.sh
    
    #!/bin/bash
    #脚本内容
    nohup /usr/local/inotify/bin/inotifywait -mrq --timefmt '%Y-%m-%d %H:%M:%S' --format '%T %w%f%e' -e close_write,modify,delete,create,attrib,move /usr/local/nginx/html/ | while read file
    do
    	rsync -avz --delete --password-file=/etc/rsyncd.pwd.client /usr/local/nginx/html/ admin@192.168.10.106::ftp/ 
    done
    
    #后台进程启动脚本,启动完之后可以在105上操作监控的目录下的文件,106的文件会自动实时同步,也可以看一下日志
    nohup /root/inotify_auto.sh >/root/inotify.log 2>&1 &
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值