redhat 7.6 rsync 配置,实时同步脚本

jackalwb 2019-10-27

1.查看rsync,并安装  

yum install rsync -y

redhat 7.6 rsync 配置,实时同步脚本

 2.配置/etc/rsyncd.conf文件

建议cp一份作为备份,清空内容复制以下配置

[服务端配置]
log file = /var/log/rsyncd.log      //日志文件,默认没有设置
pid file = /var/log/rsyncd.pid      //进程信息文件
lock file = /var/log/rsyncd.lock   
secrets file = /etc/rsyncd.pas      //存放rsync用户密码配置文件,默认不存在,需要手动创建
motd file = /etc/rsyncd.motd       //链接提示内容,默认不存在,需要手动创建
read only = no                           //设置是否只读,no代表不是
hosts allow = 192.168.0.0/16       //设置可同步的对端网段,或者单独IP也可以
list = yes       //同步时显示同步列表信息
uid = nobody      //上传文件默认UID
gid = nobody      //上传文件默认GID
use chroot = no       //限制目录切换
max connections = 4    //限制链接数量,0为不受限制
[linux_bak]     //服务端模块名
path = /data     //对应的开放目录
comment = data backup     //备注这个信息,数据备份
auth users = rsyncuser     //指定用户,与secrets file中配置文件的账号对应

3.在/etc/rsyncd.pas配置文件写入用户和密码用分号隔开,用户和auth users对应

redhat 7.6 rsync 配置,实时同步脚本

4.设置/etc/rsyncd.pas配置文件权限为600

5.下面到客户端进行操作测试(已安装rsync)

直接touch  /etc/1.pas     创建一个文件,内容写上与服务器/etc/rsyncd.pas的密码相同

redhat 7.6 rsync 配置,实时同步脚本

6.设置权限为600 ,命令:chmod 600 /etc/1.pas

7.下面使用命令测试

rsync -avH --delete --password-file=/etc/1.pas   /tmp/*   ::linux_bak

8.这是一条把客户端/tmp/下面的所有内容同步到服务端的指定目录(也就是配置文件的开放目录)/data

redhat 7.6 rsync 配置,实时同步脚本

 rsync -avH --delete --password-file=/etc/1.pas     ::linux_bak    /tmp/

9.这是一条把服务端的/data目录所有内容同步到客户端的/tmp/目录下

 redhat 7.6 rsync 配置,实时同步脚本

10.下面使用inotify-tools使用脚本实现实时同步,inotify-tools安装看另一条随笔(在客户端安装测试)

我这里inotify-tools安装在/usr/local/src目录,inotify.sh是脚本配置文件

redhat 7.6 rsync 配置,实时同步脚本

11. 编辑inotify.sh,复制下面内容,如果是手动指定安装目录的,在下面inotifywait 前面加上安装路径(我这里是默认安装)

#!/bin/bash
inotifywait -mrq -e create,move,delete,modify /tmp/ | while read D E F ; do
  rsync -avH --password-file=/etc/1.pas  /tmp/*  ::linux_bak
done

12.当我在客户端/tmp/目录下做操作的时候,会实时自动同步操作

redhat 7.6 rsync 配置,实时同步脚本

相关推荐