12_rsync+SSH同步

1. rsync同步操作
软件包:rsync
• 命令用法
– rsync [选项...] 源目录 目标目录
 
• 同步与复制的差异
– 复制:完全拷贝源到目标
– 同步:增量拷贝,只传输变化过的数据
 
• rsync操作选项
  – -n:测试同步过程,不做实际修改
  – --delete:删除目标文件夹内多余的文档
  – -a:归档模式,相当于-rlptgoD
  – -v:显示详细操作信息
  – -z:传输过程中启用压缩/解压
 
• 本地同步
– rsync [选项...] 本地目录1    本地目录2
– rsync [选项...] 本地目录1/   本地目录2
 
]# rsync -avz /boot  /todir/ #同步整个文件夹
]# rsync -avz test1/ test2/  #只同步目录下的数据
]# rsync -avz --delete test1/ test2/ (同步 1 --> 2 多退少补)
 
2. rsync+SSH同步
2.1 与远程的 SSH目录保持同步
– 下行:rsync [...]  user@host:远程目录   本地目录
– 上行:rsync [...]  本地目录   user@host:远程目录
]# rsync -avz --delete /temp/test1/ root@10.10.11.11:/temp/
]# rsync -avz --delete root@10.10.11.11:/temp/ test1/

2.2 实时同步(配置无密码)
]# ssh-keygen  #一路回车
]# ls /root/.ssh/
authorized_keys id_rsa id_rsa.pub known_hosts
复制公钥到对方
]# ssh-copy-id root@10.10.11.11

pc8:
]# ls /root/.ssh/
authorized_keys
pc7检测:
]# rsync -avz --delete /temp/test1/ root@10.10.11.11:/temp/

2.3 安装inotify-tools实现监控目录内容变化
源码安装后,查看生成的文件:
]# ls /usr/local/bin/
inotifywait inotifywatch
 
• 基本用法
– inotifywait [选项] 目标文件夹
 
• 常用命令选项
– -m,持续监控(捕获一个事件后不退出)
– -r,递归监控、包括子目录及文件
– -q,减少屏幕输出信息
– -e,指定监视的 modify、move、create、delete、attrib 等事件类别

2.3.1 开始持续递归监控:
]# inotifywait -rmq /temp
新开一个窗口指定增删改查操作,查看实时监控状态

2.3.2 书写Shell脚本,实时同步
#!/bin/bash
while  inotifywait -rqq  /temp
do
  rsync -az --delete /temp/ root@10.10.11.11:/temp/
done &

2.3.3 终止脚本
]# pgrep -l rsync
]# killall rsync.sh
]# ps aux | grep inotifywait
]# kill -9 pid号

原文地址:https://www.cnblogs.com/luwei0915/p/12148336.html