配置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 每个实例最多监控文件数

最新文章

  1. BSBuDeJie_04
  2. iOS--UILable自适应大小
  3. Oracle安装:64位电脑安装64位Oracle、PLSQL步骤
  4. 命令行上的narrowing(随着输入逐步减少备选项)工具
  5. 每天一个linux命令(7):cp 命令
  6. Stacked injection--堆叠注入--堆查询注入
  7. Oracle静态数据字典
  8. 52. N-Queens II
  9. nlog学习使用
  10. python基础之五大标准数据类型
  11. express简介
  12. sql删除数据库重复字段的行
  13. b/s 和c/s的区别
  14. 初识rt-thread
  15. JDK-1.8-CopyOnWriteSet
  16. java 持有对象总结
  17. Word文档加密小技巧
  18. 高可用注册中心 ->Spring Cloud Eureka
  19. ElasticStack系列之八 & _source 字段
  20. free 和delete 把指针怎么啦?

热门文章

  1. kubernetes 基础知识
  2. 云服务器部署Python项目(nginx+uwsgi+mysql+项目)
  3. MySQL中没有FULL OUTER JOIN的处理
  4. P5530 [BOI 2002]双调路径
  5. 聊一聊C#基本类型
  6. 力扣 - 142. 环形链表 II
  7. 安装jdk及安装多版本jdk
  8. Navicat无法直连MySQL怎么办?
  9. DCL单例模式中的缺陷及单例模式的其他实现
  10. XML转换成TXT行数据的Java程序