redhat 7.6 rsync 配置,实时同步脚本
1.查看rsync,并安装
yum install rsync -y
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对应
4.设置/etc/rsyncd.pas配置文件权限为600
5.下面到客户端进行操作测试(已安装rsync)
直接touch /etc/1.pas 创建一个文件,内容写上与服务器/etc/rsyncd.pas的密码相同
6.设置权限为600 ,命令:chmod 600 /etc/1.pas
7.下面使用命令测试
rsync -avH --delete --password-file=/etc/1.pas /tmp/* rsyncuser@192.168.58.131::linux_bak //这个/tmp/* *号要删除,否则主机删除了文件,备份机无法同步
8.这是一条把客户端/tmp/下面的所有内容同步到服务端的指定目录(也就是配置文件的开放目录)/data
rsync -avH --delete --password-file=/etc/1.pas rsyncuser@192.168.58.131::linux_bak /tmp/
9.这是一条把服务端的/data目录所有内容同步到客户端的/tmp/目录下
10.下面使用inotify-tools使用脚本实现实时同步,inotify-tools安装看另一条随笔(在客户端安装测试)
我这里inotify-tools安装在/usr/local/src目录,inotify.sh是脚本配置文件
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/ rsyncuser@192.168.58.131::linux_bak
done
12.当我在客户端/tmp/目录下做操作的时候,会实时自动同步操作