Rsync+inotify

目录

一、Rsync

1.Rsync 介绍

2.同步方式(先全量,第二次进行增量或者差异备份)

3.rsync与cp,scp对比

(1)rsync与cp

(2)rsync与scp差异性

4.增量备份 

5.rsync命令

(1)格式

(2)常用选项

(3)rsync本地复制

6.配置源的两种表示方法

(1)格式一: 用户名@主机地址: :共享模块名

(2)格式二: rsync://用户名@主机地址/共享模块名

7.上行同步和下行同步

​8.实际操作

(1)初始化

(2)查看是否有rsync包

(3)修改配置文件 

(4)为备份账户创建数据文件

(5) 加权

(6)保证所有用户对源目录/var/www/html都有读的权限

(7)启动rsync服务程序

服务端 

客户端 

查看同步 

PS:客户端:免交互格式配置

服务端删除 

二、inotify 

1.作用

2.inotifywait(持续监控并实时输出监控结果的命令)

常见参数

2.实验rsync+inotify

服务器端

客户端 

调整inotify内核参数

安装inotify 

开启另一个终端

在另外一个终端编写触发式同步脚本 


一、Rsync

1.Rsync 介绍

(1)rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。并且可以不进行 改变原有数据的属性信息,实现数据的备份迁移特性。

(2)rsync软件适用于unix/linux/windows等多种操作系统平台

(3)rsync是一个快速和非常方便的文件复制工具。它能本地复制,远程复制,或者远程守护进程方式复制,它提供了大量的参数来控制其行为的各个方面,并且允许非常灵活的方式来实现文件的传输复制

(4)以其delta-transfer算法闻名。

(5)rsync监听端口: 873

(6)rsync运行模式: C/S

2.同步方式(先全量,第二次进行增量或者差异备份)

(1)全量备份

(2)原有的数据全部传送

(3)把原来的文件和新的文件一 起统一 传送

(4)全量复制,效率低

3.rsync与cp,scp对比

(1)rsync与cp

cp是全量备份(完整拷贝),rsync当同步地没有时是全量,当对面有一部分时,会根据差异项进行同步备份(也就是增备和差备)

cp支持本地,rsync支持的是远程

(2)rsync与scp差异性

考虑两个方面

传输文件的大小

传输过程中带宽大不大

scp是块存储,将数据封装,通过网络传输,如果带宽足够,文件大小比较小那么scp更快

rsync是将数据切片然后压缩再传输,如果带宽小,文件大小比较大,rsync就要快很多

4.增量备份 

在传输数据之前通过一些算法通过你有的数据和我有的数据进行对比,把不一样的数据通过网络传输 增量复制,效率高.

5.rsync命令

(1)格式

rsync [选项] 原始位置 目标位置

(2)常用选项

选项描述
-V显示同步过程的详细信息
-Z在传输文件时进行压缩
-a归档模式,递归并保留对象属性,等同于-rlptgoD
-r递归模式,包含目录及子目录中的所有文件
-l对于符号链接文件仍然复制为符号链接文件
-H保留硬连接文件
-A保留ACL属性信息
-D保留设备文件及其他特殊文件。
--delete删除目标位置有而原始位置没有的文件
--checksum根据对象的校验和来决定是否跳过文件

(3)rsync本地复制

rsync -avz /abc /opt

rsync- avz /abc/ /opt

这两者是有区别的

第一个会复制abc包括abc里面的文件

第二个只复制abc里面的文件

6.配置源的两种表示方法

(1)格式一: 用户名@主机地址: :共享模块名

rsync -avz backuper@192.168.174.10: :wwwroot / root

将主机A上的/mnt目录复制到主机B的/opt目录下,使用SCP的写发

位置A:scp /mnt root@$B_ ip:/opt/ 位置B: scp root@$B_ IP:/mnt /opt

(2)格式二: rsync://用户名@主机地址/共享模块名

rsync -avz rsync: / /backuper@192.168.174.10/ wwwroot / root  

补充概念:

URL:具体的位置点 http: //www.baidu. com. /ky15/men/ id01. html

URI:标识的是拥有同一特性或类型的一个 集合: http: //www .baidu . com./ky15/men

(这里的men是一个集合,是idxx.html这一类文件的集合)

7.上行同步和下行同步

8.实际操作

(1)初始化

systemctl stop firewalld
setenforce 0

(2)查看是否有rsync包

[root@localhost ~]#rpm -q rsync 
rsync-3.0.9-18.el7.x86_64

(3)修改配置文件 

[root@localhost ~]#vim /etc/rsyncd.conf 

uid = nobody
gid = nobody
use chroot = yes
pid file = /var/run/rsyncd.pid
dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
address = 192.168.174.10
port = 873
log file = /var/log/rsycd.log
hosts allow = 192.168.174.0/24

[ftp]
path = /var/www/html
comment = web service
read only = yes
auth users = backuper
secrets file = /root/rsyncd_users.db

(4)为备份账户创建数据文件

[root@localhost ~]#vim /root/rsyncd_users.db

(5) 加权

[root@localhost ~]#chmod 600 /root/rsyncd_users.db

一定要600权限

(6)保证所有用户对源目录/var/www/html都有读的权限

[root@localhost ~]# mkdir -p /var/www/html
[root@localhost ~]# chmod +r /var/www/html
[root@localhost ~]# ls -ld /var/www/html

(7)启动rsync服务程序

[root@localhost ~]# rsync --daemon
[root@localhost ~]# netstat -anpt |grep rsync

关闭服务

[root@localhost ~]# kill $(cat /var/run/rsyncd.pid)

服务端 

[root@localhost ~]# cd /var/www/html
[root@localhost html]# echo "hello world" >> 1.txt

客户端 

[root@localhost ~]# mkdir /abc
[root@localhost ~]# rsync -avz backuper@192.168.174.10::ftp /abc/

查看同步 

[root@localhost ~]# cd /abc
[root@localhost abc]# ls

PS:客户端:免交互格式配置

[root@localhost abc]# echo "123123" > /etc/sever.pass
[root@localhost abc]# chmod 600 /etc/server.pass

服务端删除 

[root@localhost abc]# rsync -avz --delete --password-file=/etc/server.pass backuper@192.168.174.10::ftp /abc/

二、inotify 

使用inotify通知接口,可以用来监控文件系统的各种变化情况,如文件存取、删除、移动、修改等。利用这一机制,可以非常方便地实现文件异动告警、增量备份,并针对目录或文件的变化及时作出响应。

将inotify机制与rsync相结合,可以实现触发式备份(实时同步),即只要原始位置的文档发生变化,则立即启动增量备份操作;否则处于静默等待状态。这样,就避免了按固定周期备份时存在的延迟性、周期过密等问题。

因为inotify通知机制由 Linux内核提供,因此主要做本机监控,在触发式备份中,应用时更适合上行同步。

1.作用

可以监控文件系统的变动情况,并做出通知响应

调整inotify内核参数(优化)
/etc/sysct1.conf(内核参数配置文件)
inoti fywait:                      用于持续监控,实时输出结果
inoti fywatch: .                 用于短期监控,任务完成后再输出结果
max_ queue_ events       监控事件队列大小
max_ _user_ instances   最多监控实例数
max_ user_ watches       每个实例最多监控文件数

2.inotifywait(持续监控并实时输出监控结果的命令)

格式: inotifywait [参数]  常见参数

常见参数

选项描述
-m持续进行监控
-r递归监控所有子对象
-q简化输出信息
-e指定要监控哪些事

2.实验rsync+inotify

服务器端

 [root@localhost ~]#vim /etc/rsyncd.conf

[root@localhost ~]# kill `cat /var/run/rsyncd.pid`
[root@localhost ~]# netstat -anpt |grep rsync
[root@localhost ~]# rsync --daemon
[root@localhost ~]# netstat -anpt |grep rsync 

客户端 

调整inotify内核参数

[root@localhost ~]# cat /proc/sys/fs/inotify/max_queued_events 
[root@localhost ~]# cat /proc/sys/fs/inotify/max_user_instances 
[root@localhost ~]# cat /proc/sys/fs/inotify/max_user_watches 

[root@localhost ~]#vi /etc/sysctl.conf 

fs.inotify.max_queued_events = 32768
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576

[root@localhost ~]# sysctl -p    查看

安装inotify 

安装inotify-tools辅助工具
inotifywait:用于持续监控,实时输出结果(增删改属性修改)
inotifywatch:用于短期监控,任务完成后再出汇总结果

[root@localhost opt]#tar xf inotify-tools-3.14.tar.gz 
[root@localhost opt]#cd inotify-tools-3.14/
[root@localhost inotify-tools-3.14]#./configure
[root@localhost inotify-tools-3.14]#make && make install 

开启另一个终端

在另外一个终端编写触发式同步脚本 

[root@localhost ~]# vim /opt/inotify.sh

[root@localhost abc]# chmod +x /opt/inotify.sh
[root@localhost abc]# chmod 777 /var/www/html/
[root@localhost abc]# chmod +x /etc/rc.d/rc.local
[root@localhost abc]# echo '/ opt/inotify.sh' >> /etc/rc.d/rc.local 加入开机自起

 [root@localhost opt]# sh -x inotify.sh

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值