环境
服务器A:(rsync同步源)IP 192.168.104.94 文件 服务器B:(rsync客户端)IP 192.168.104.96 备份文件
服务器B 192.168.104.96 先配置服务器B
1.安装rsync文件备份工具
yum -y install rsync
2.禁用防火墙
systemctl disable firewalld
3.修改/etc/rsyncd.conf配置文件
vim /etc/rsyncd.conf uid = nobody gid = nobody use chroot = yes # 禁锢在源目录 address = 192.168.104.96 # 监听地址 port 873 # 监听端口 max connections = 4 # 同步文件的个数 # exclude = lost+found/ # 这个路面下的文件不同步 log file = /var/log/rsyncd.log # 日志文件位置 pid file = /var/run/rsyncd.pid # 存放进程ID的文件位置 hosts allow = 192.168.104.0/24 # 允许访问的客户机地址 transfer logging = yes # 使rsync服务器使用ftp格式的文件来记录下载和上载操作在自己单独的日志中。 timeout = 900 # 超时时间 [ftp] # 共享模块名称 path = /root/rsync_test # 源目录的实际路径 comment = shunwang # 名称(随便起) read only = no # 修改为no 让ftp目录有写入权限 dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 #同步时不再压缩的文件类型 auth users = backuper # 授权账号 secrets file = /etc/rsyncd_users.db # 存放账号信息的数据文件
4.为备份账号创建数据文件
vim /etc/rsyncd_users.db backuper:abc#123 #backuper 备份账号、pwd123是备份账号密码
5.给备份账号目录权限
chmod 600 /etc/rsyncd_users.db
6.备份用户backuper需要对源目录/root/rsync_test有相应的读取权限
chmod 777 /root/rsync_test/ ll /root/rsync_test/
7.启动rsync服务
systemctl restart rsyncd #启动rsync服务 systemctl enable rsyncd #设置开机自动启动 netstat -anpt | grep rsync #查看873端口
8.在目录中检查备份的文件
cd /root/rsync_test/ vim test.txt hello shunwang
服务器A 192.168.104.94
1.安装rsync文件备份工具
yum -y install rsync gcc-c++
2.禁用防火墙
systemctl disable firewalld
3.修改/etc/rsyncd.conf配置文件
vim /etc/rsyncd.conf uid = nobody gid = nobody use chroot = yes # 禁锢在源目录 address = 192.168.104.94 # 监听地址 port 873 # 监听端口 max connections = 4 # 同步文件的个数 # exclude = lost+found/ # 这个路面下的文件不同步 log file = /var/log/rsyncd.log # 日志文件位置 pid file = /var/run/rsyncd.pid # 存放进程ID的文件位置 hosts allow = 192.168.104.0/24 # 允许访问的客户机地址 transfer logging = yes # 使rsync服务器使用ftp格式的文件来记录下载和上载操作在自己单独的日志中。 timeout = 900 # 超时时间 [ftp] # 共享模块名称 path = /root/rsync_test # 源目录的实际路径 comment = shunwang # 名称(随便起) read only = no # 修改为no 让ftp目录有写入权限 dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 #同步时不再压缩的文件类型 auth users = backuper # 授权账号 secrets file = /etc/rsyncd_users.db # 存放账号信息的数据文件
4.为备份账号创建数据文件
vim /etc/rsyncd_users.db backuper:abc#123 #backuper 备份账号、pwd123是备份账号密码
5.给备份账号目录权限
chmod 600 /etc/rsyncd_users.db
6.备份用户backuper需要对源目录/root/rsync_test有相应的读取权限
chmod 777 /root/rsync_test/ ll /root/rsync_test/
7.启动rsync服务
systemctl restart rsyncd #启动rsync服务 systemctl enable rsyncd #设置开机自动启动 netstat -anpt | grep rsync #查看873端口
8.查看inotify内核参数
cat /proc/sys/fs/inotify/max_queued_events # 表示监控事件队列(16384) cat /proc/sys/fs/inotify/max_user_instances # 表示最多监控实例数(128) cat /proc/sys/fs/inotify/max_user_watches # 表示每个实例最多监控文件数(8192)
9.安装inotify-tools
yum install -y inotify-tools
10.以监控网站目录/root/rsync_test为例
inotifywait -mrq -e modify,create,move,delete /root/rsync_test # 运行此命令是才开一个终端命令框 、-e表示用来指定要监控哪些事件、-m表示持续监控、-r表示递归整个目录、-q表示简化输出信息、modify表示修改、create表示创建、move表示移动、delete表示删除、attrib表示属性。
11.编写触发式同步脚本
vim /opt/inotify_rsync.sh #!/bin/bash INOTIFY_CMD='inotifywait -mrq -e modify,create,move,delete /root/rsync_test/' RSYNC_CMD='rsync -rlvz --delete --password-file=/etc/server.pass /root/rsync_test/ backuper@192.168.104.94::ftp' $INOTIFY_CMD | while read DIRECTORY EVENT FILE do if [ $(pgrep rsync | wc -l) -le 4 ] then $RSYNC_CMD fi done chmod 777 /opt/inotify_rsync.sh #给予权限 chmod 777 /root/rsync_test/ #给予权限 vim /etc/rc.d/rc.local #把脚本加入到开机自动启动 . /opt/inotify_rsync.sh &
https://blog.csdn.net/u012865381/article/details/77506397 rsync产生详解