rsync 同步操作

格式:
rsync [选项] 源目录 目标目录
每次只传输变化的数据

本地同步:
rsync [选项] 本地目录1 本地目录2
没有/同步整个文件夹

rsync [选项] 本地目录1/ 本地目录2
有/只同步目录下的数据

rsync 操作选项
-n:测试同步过程,不做实际修改
--delete:删除目标文件夹内多余的文档
-a:归档模式
-v:显示详细操作信息
-z:传输过程启用压缩/解压

例:rsync -avz /abc/ /test

与远程的SSH目录保持同步
方式1.rsync [选项] user@host:远程目录 本地目录

方式2.rsync [选项] 本地目录 user@host:远程目录

例:rsync -avz --delete /abc/ [email protected]:/opt/
(远程的IP地址)

实时同步
1.密码验证取消,采用公钥私钥验证
ssh-keygen 生成公钥私钥

ls /root/.ssh 公钥私钥存放位置

ssh-copy-id [email protected] 拷贝公钥到对方

2.验证是否还需要密码
ssh [email protected]

3.inotify实时监控目录,内容是否变化
源码安装inofify-tools-3.13.tar.gz包

4.inotify基本用法
inotifywait [选项] 目标文件

5.inotify常用选项
-m:持续监控(捕获一个事件后不退出)
-r:递归监控,包括子目录及文件

6.rsync -avz --delete /abc/ [email protected]:/opt/

7.脚本测试:
cat inotify.sh
#!/bin/bash
inotify=/usr/local/bin/inotifywait
$inotify -mrq --timefmt '%y%m%d %H:%M' --format '%T %w%f' -e close_write,modify,delete,create,attrib /abc \
|while read file
do
rsync -avz --delete /abc/ /abc_back/
done
exit 0