rsync实现远程同步

本文详细介绍了rsync的用法和实时同步的优势,讨论了inotify的内核参数调整和辅助工具inotify-tools的安装。通过实验展示了如何结合inotify和rsync实现实时文件同步,确保源服务器和客户端的数据一致性。
摘要由CSDN通过智能技术生成

rsync实现远程同步

一、关于rsync

  • Remote Sync,远程同步
  • 支持本地复制,或者与其他SSH、rsync主机同步
  • 官方网站:http://rsync.samba.org
  • rsync 主要是让各个服务器中数据同步
  • 只读可以下载,不可以上传 下载决定于读
  • 所有的内容只需要去找源点 备份点也叫发起端
  • kill -9 强制结束 pid文件还在
  • kill 结束 删除pid文件

二、 rsync命令的用法

- rsync  [选项] 原始位置  目标位置     ## 把原始位置同步到目标位置
  • a: 归档模式,递归保留对象属性,等同于 -rlptgoD 如属组属主

-v: 显示同步过程的详细(verbose) 信息

-z: 在传输文件时进行压缩(compress)

-H: 保留硬连接位置

-A:保留ACL属性信息

–delete : 删除目标位置有而原始位置没有的文件 #保持两边文件一致 (如果两边的数据不一致,那么用户访问获取的内容就是不一致了) 这条命令要小心

–checksum: 根据对象的校验和来决定是否跳过文件

三、rsync实时同步

3.1 定期同步的不足

  • 执行备份的时间固定,延迟明显、实时性差
  • 当同步源长期不变化时,密集的定期任务是不必要的

3.2 实时同步的优点

  • 一旦同步源出现变化,立即启动备份
  • 只要同步源无变化,则不执行备份

四、inotify

  • Linux内核的inotify机制
  • 从版本2.6.13开始提供
  • 可以监控文件系统的变动情况,并做出通知响应
  • 辅助软件:inotify-tools

4.1 调整inotify内核参数

  • max_queue_events:监控事件队列大小
  • max_user_instances:最多监控实例数
  • max_user_watches:每个实例最多监控文件数
[root@localhost ~]# vi /etc/sysctl.conf 
……
fs.inotify.max_queued_events = 16384  ##监控数应大于监控目标的总文件数
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576
[root@localhost ~]# sysctl -p

4.2 安装inotify-tools辅助工具

  • inotifywait:用于持续监控,实时输出结果
  • inotifywatch:用于短期监控,任务完成后再出结果
  • inotify 作用是监控 然后做出通知响应
  • 监控的事件 —— modify 修改 create 创建 move 移动 delete 删除
    参数说明

inotifywait

语法:

inotifywait [-hcmrq] [-e ] [-t ] [--format ] [--timefmt ] [ ... ]

参数:
-h,–help
输出帮助信息
@
排除不需要监视的文件,可以是相对路径,也可以是绝对路径。
–fromfile
从文件读取需要监视的文件或排除的文件,一个文件一行,排除的文件以@开头。
-m, –monitor
接收到一个事情而不退出,无限期地执行。默认的行为是接收到一个事情后立即退出。
-d, –daemon
跟–monitor一样,除了是在后台运行,需要指定–outfile把事情输出到一个文件。也意味着使用了–syslog。
-o, –outfile
输出事情到一个文件而不是标准输出。
-s, –syslog
输出错误信息到系统日志
-r, –recursive
监视一个目录下的所有子目录。
-q, –quiet
指定一次,不会输出详细信息,指定二次,除了致命错误,不会输出任何信息。
–exclude
正则匹配需要排除的文件,大小写敏感。
–excludei
正则匹配需要排除的文件,忽略大小写。
-t , –timeout
设置超时时间,如果为0,则无限期地执行下去。
-e , –event
指定监视的事件。
-c, –csv
输出csv格式。
–timefmt
指定时间格式,用于–format选项中的%T格式。
–format
指定输出格式。
%w 表示发生事件的目录
%f 表示发生事件的文件
%e 表示发生的事件
%Xe 事件以“X”分隔
%T 使用由–timefmt定义的时间格式

inotifywatch

语法:

参数:
-h,–help
输出帮助信息
@
排除不需要监视的文件,可以是相对路径,也可以是绝对路径。
–fromfile
从文件读取需要监视的文件或排除的文件,一个文件一行,排除的文件以@开头。
-m, –monitor
接收到一个事情而不退出,无限期地执行。默认的行为是接收到一个事情后立即退出。
-d, –daemon
跟–monitor一样,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值