准备两台主机服务器
服务端: host1 192.168.1.109
客户端: host2 192.168.1.107
一. 服务端配置
1. 修改 host1 的 rsync 配置文件:
- ~]# VIM /etc/rsyncd.conf
- uid=root
- gid=root
- use chroot=no
- max connections=0 #不限制最大连接数
- exclude = lost+found
- pid file = /var/run/rsyncd.pid
- log file = /var/log/rsyncd.log
- lock file =/var/run/rsyncd.lock
- reverse lookup = no
- hosts allow = 192.168.1.107/24 #允许连接的主机
- ignore errors
- [backup]
- path = /backup/ #备份的到路径
- comment = backup
- read only= no
- auth users = kobe #客户端同步数据到服务端时的授权账户
- secrets file=/etc/rsync.pass #将授权账户与密码存放到此文件中
- ...
- ...
- ...
2. 创建配置文件中的备份文件夹, 授权账户, 账户密码文件
创建用于备份的文件目录
~]# mkdir /backup/
创建授权用户
~]# useradd -r -s /sbin/nologin kobe
将授权的用户名及密码存入文件, 为了安全将此文件设置 600 权限
- ~]# echo 'kobe:123456'> /etc/rsyncd.pass
- ~]# chmod 600 /etc/rsyncd.pass
3. 服务端配置完成重新启动 rsyncd 服务加载配置文件
~]# systemctl restart rsyncd.service
二. 客户端配置
1.yum 安装监控包客户端工具 inotifyd-tools, 导入授权用户密码
~]# yum install inotify-tools -y
导入授权用户密码
- ~]# echo 123456> /etc/rsyncd.pass
- ~]# chmod 600 /etc/rsynd.pass
2. 编写脚本实现客户端与服务端实时同步
- ~]# VIM /data/shell.sh/rsync_inotify.sh
- #!/bin/bash
- SRC='/data/shell.sh/'
- DEST='[email protected]::backup'
- inotifywait -mrq --timefmt '%Y-%m-%d %H:%M' --format '%T %w%f' -e create,delete,moved_to,close_write,attrib ${SRC} |while read DATE TIME DIR FILE;do
- FILEPATH=${DIR}${FILE}
- rsync -az --delete --password-file=/etc/rsync.pass $SRC $DEST && echo "At ${TIME} on ${DATE}, file $FILEPATH was backuped up via rsync">> /var/log/changelist.log
- done
- :wq #保存退出
运行脚本文件实时同步开始 .....
~]# rsync_inotify.sh
三. 客户端更改数据测试实时同步
1. 服务端 host1
监控 backup 文件夹, 每秒钟刷新一次:
~]# watch -n 1 ls -l /backup
2. 客户端 host2
~]# ls -l /data/shell.sh
可以看出实现数据实时同步, 在客户端修改数据时会自动将修改数据同步到服务端
3. 客户端查看日志文件
显示客户端已备份到服务端的文件及备份的时间
~]# cat /var/log/changelist.log
来源: http://www.bubuko.com/infodetail-3064195.html