rsync单项同步

时间:2023-03-09 07:42:20
rsync单项同步

配置rsync+inotify实时单向同步

定期同步的缺点:

执行备份的时间固定,延期明显,实时性差

当同步源长期不变化时,密集的定期任务是不必要的(浪费资源)

实时同步的优点:

一旦同步源出现变化,立即启动备份,实时性好

只要同步源无变化,则不执行备份,节省资源

创建主配置文件(vim /etc/rsyncd.conf)

address = 192.168.88.10 #rsync服务绑定IP

port 873 #默认服务端口873

log file = /var/log/rsyncd.log #日志文件位置

pid file = /var/run/rsyncd.pid #进程号文件位置

[web] #共享名:用来连接是写在url上的,切记 这里推荐共享名和共享目录名一样最好

comment = web directory backup #共享描述话语

path = /filesrc #实际共享目录

read only = no #是否仅允许读取

dont compress = *.gz *.bz2 #哪些文件类型不进行压缩

auth users = user1 #登录用户名自写

secrets file = /etc/rsyncd_users.db #认证所需账户密码文件(需自行创建-同上)

b.创建认证所需账户密码文件

# vim /etc/rsyncd_users.db

user1:123456

# chmod 600 /etc/rsyncd_users.db 须修改权限,否则登录报错

c.启动服务

# rsync --daemon

# netstat -antp | grep :873

d.设置映射用户对共享目录有权限(r)

# setfacl -m u:nobody:rwx /filesrc

inotify简介

inotify 是一个 Linux 内核特性,它监控文件系统,并且及时向专门的应用程序发出相关的事件警告,比如删除、读、写和卸载操作等。要使用 inotify,必须具备一台带有

2.6.13 版本的内核操作系统。

inotify两个监控命令:

inotifywait:用于持续监控,实时输出结果(常用)

inotifywatch:用于短期监控,任务完成后再出结果

inotify部署

yum -y install gcc*

tar -xf inotify-tools-3.14.tar.gz

cd inotify-tools-3.14

./configure && make && make install

inotifywait命令格式

格式:inotifywait -mrq -e 监控动作1,监控动作2 /监控目录 &

示例:inotifywait -mrq -e create,delete /filesrc &

-m:始终保持事件监听状态

-r:递归查询目录

-q:只打印监控事件的信息

监控动作:modify(内容),create,attrib(权限),move,delete

利用rsync+inotifywait结合脚本实现单向实时同步

vim src.sh

!/bin/bash

a="inotifywait -mrq -e create,delete /filesrc" filesrc是指共享的目录名

b="rsync -avz /filesrc/* root@192.168.88.20:/filedst" filedst是指同步到对方的那个目录

$a | while read directory event file #while判断是否接收到监控记录

do

$b

done

注:用户登录时要求免密码验证

脚本最好放在家目录下运行。

实验结果验证

在服务器端创建,删除文件,查看备份端是否正常

拓展:调整inotify监控的文件数量

调整inotify内核参数(/etc/sysctl.conf)

mak_queue_events 监控队列大小

mak_user_instances 最多监控实例数

max_user_watches 每个实例最多监控文件数