环境

服务器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产生详解