rsync与inotify
【1】、rsync同步操作
应用场景(业务场景) | 应用建议 |
---|---|
rsync作为命令使用 | 临时拉取,推送数据。未来这和需求可以通过scp命令实现 |
定时备份:rsync服务+定时任务 | 定时备份,定期备份(定时任务进行备份+通过rsync传输备份) |
实时同步:rsync服务+sersync/lsyncd是先试试吧同步 | 解决存储服务单点问题 |
rsync服务与异地容灾 | 找一个异地的服务器存放备份 |
-
命令用法
- -rsync [选项] 源目录 目标目录
- 5G左右的数据用拷贝,更大的用rsync
-
同步与复制的差距
- 复制:完全拷贝源到目标
- 同步:增量拷贝,只传输变化的数据
rsync选项 | 含义 |
---|---|
-a | -rlptgoD -r:递归复制 -l:复制软连接 -p:保持权限不变 -m:保持修改时间不变 -o:所有者不变 -g:用户组不变 -D:--devices --specials 设备与特殊文件 |
-v | 显示过程 |
-z | 传输数据的时候进行压缩(公网) |
-P | 在传输过程中显示更加详细的信息 |
--bwlimit | 不要与-z一起使用,限制传输时的速度,一般在公网传输的时候使用,避免占据大量的带宽 |
--exclude | 在数据传输时排除哪些内容 |
--delete | 保持源与目标数据一致 |
-X | 保持同步前后ACL权限 |
-n | 测试同步过程,不做实际修改 |
[root@moudle01 09:23:10 ~]# mkdir /aaa
[root@moudle01 09:23:20 ~]# mkdir /bbb
[root@moudle01 09:23:23 ~]# touch /aaa/{1..3}.txt
[root@moudle01 09:23:38 ~]# rsync -avX --delete /aaa/ /bbb
sending incremental file list
./
1.txt
2.txt
3.txt
sent 296 bytes received 80 bytes 752.00 bytes/sec
total size is 0 speedup is 0.00
[root@moudle01 09:24:04 ~]# ls /bbb
1.txt 2.txt 3.txt
# --delete会保持源目一致,我在/bbb中创建了数据,使用rsync时会自动删除
[root@moudle01 09:24:07 ~]# touch /bbb/123.txt
[root@moudle01 09:24:17 ~]# rsync -avX --delete /aaa/ /bbb
sending incremental file list
deleting 123.txt
./
sent 139 bytes received 30 bytes 338.00 bytes/sec
total size is 0 speedup is 0.00
【2】、远程同步(rsync+ssh)
- 与远程的ssh目录保持同步
- 下行:rsync [..] user@host:远程目录 本地目录
- 上行:rsync [..] 本地目录 user@host:远程目录
rsync -avX --delete /aaa root@192.168.121.181:/opt
【3】、实时同步
- 首先要设置ssh免密
- 通过inotify监控目录内容
- -m:持续监控(捕获一个事件后不退出)
- -r:递归监控、包括子目录及文件
- -q:减少屏幕输出信息
- -e:指定监控的modify、move、create、delete、attrib等时间类别(不写-e,任何事件都监控)
#
[root@moudle01 10:26:03 /]# inotifywait -rq /mydir/
/mydir/ CREATE aaa.txt
inotify是用来监视目录的,没有数据同步功能,数据同步是通过rsync实现的
我们只能通过脚本去实现inotify和rsync联动,当inotify监控到数据内容发生变化后,rsync去实现同步操作
#!/bin/bash
while inotifywait -rq /mydir/
do
rsync -avX --delete /mydir/ root@192.168.121.181:/mnt
done
[root@moudle01 10:45:23 /]# touch /mydir/ssss
/mydir/ CREATE ssss
[root@moudle01 10:45:31 /]# sending incremental file list
./
ssss
sent 277 bytes received 41 bytes 636.00 bytes/sec
total size is 0 speedup is 0.00
[root@clone-01 10:46:29 ~]# ll /mnt
total 0
-rw-r--r--. 1 root root 0 Jun 7 10:26 aaa.txt
-rw-r--r--. 1 root root 0 Jun 7 10:43 asdasdas
drwxr-xr-x. 2 root root 6 Jun 7 10:41 hahahah
-rw-r--r--. 1 root root 0 Jun 7 10:45 ssss
标签:rsync,--,bytes,moudle01,txt,root
From: https://www.cnblogs.com/xuruizhao/p/18294179