-
rsync基本使用
---rsync概述(Remote Sync 远程同步)
- 支持本地复制,或与其他SSH,rsync主机同步
- 官方网站:http://rsync.samba.org/
---rsync同步操作
- 命令用法:rsync [选项] 源目录 目标目录
- 同步与复制的差异
复制:完全拷贝源到目标
同步:增量拷贝,只传输变化过的数据
- rsync操作选项:
-n:测试同步过程,不做实际修改
--delete:删除目标文件夹内多余的文档
-a:归档模式
-v:显示详细操作信息
-z:传输过程中启用压缩/解压
-r:递归,包括目录/子目录及所有文件
-l:保留符号链接文件
-p,-t:保留文件的权限,时间标记
-o,-g:保留文件的属主/属组标记
-D:保留设备文件及其他特殊文件
- rsync本地同步
rsync [选项...] 本地目录1 本地目录2
rsync [选项...] 本地目录1/ 本地目录2
#mkdir /todir #rsync -a --delete /boot /todir #同步整个文件夹 #rsync -a --delete /boot/ /todir #只同步文件夹下的数据 #ls /todir boot grub config-2.6.18-348.el5
- rsync远程同步(rsync+ssh)
---与远程的SSH目录保持同步
rsync -a --delete user@host:远程目录 本地目录 #将远程主机的目录下载到本地目录下
rsync -a --delete 本地目录 user@host:远程目录 #将本地目录上传至远程主机上
---服务端要求
开启sshd服务,并且提供授权的用户,密码
-
inotify实时同步
---实现无密码验证
1.在svr123生成公钥,私钥
#ssh-keygen
#ls /root/.ssh/
id_rsa id_rsa.pub known_hosts
2.传递公钥到pc207
#ssh-copy-id root@192.168.4.207
3.在pc207上查看
#ls /root/.ssh/
authorized_keys
4.在svr7上测试无密码同步
#rsync --delete -avz /todir/ root@192.168.4.207:/opt/ #将svr7/todir/目录下的数据上传到pc207/opt/目录下(--delete:多增少补 -avz:归档压缩并显示详细过程)
---同步的实时性
- Linux内核的inotify机制
- 提供事件响应式的文件系统通知机制
- 安装inotify-tools控制工具可调用此机制实现监控
---安装inotify-tools工具
- 参考下载地址:http://download.sf.net/inotify-tools/
- 标准的源码,编译安装即可
#tar -xf inotify-tools-3.13.tar.gz
#cd inotify-tools-3.13
#./configure
#make && make install
---inotifywait监控
- 基本用法:inotifywait [选项] 目标文件夹
- 常用命令选项:
-m:持续监控(捕获一个事件后不退出)
-r:递归监控,包括子目录及文件
-q:减少屏幕输出信息
-e:指定监控的modify, move, create, delete, attrib等
-
同步脚本书写
---inotify与rsync的结合(利用while循环来反复检查单次监控结果)
实现从本地到远程的WEB目录推送:
本地svr123
远程服务器207
#vim /root/isync.sh
#!/bin/bash
while inotifywait -rqq -e modify,move,create,delete,attrib /var/www/html
do
rsync -az --delete /var/www/html root@192.168.4.207:/var/www/html
done &
#chmod +x /root/isync.sh