rsync同步操作(让两个目录内容一致)
• 命令用法
– rsync [选项...] 源目录 目标目录
• 同步与复制的差异
– 复制:完全拷贝源到目标
– 同步:增量拷贝,只传输变化过的数据
• 本地同步
– rsync [选项...] 本地目录1 本地目录2 #同步整个文件夹
– rsync [选项...] 本地目录1/ 本地目录2 #同步目录下的数据
[root@svr7 ~]# mkdir /todir
[root@svr7 ~]# rsync -a /boot /todir //同步整个文件夹
[root@svr7 ~]# rsync -a /boot/ /todir //只同步目录下的数据
• rsync操作选项
– -n:测试同步过程,不做实际修改
– --delete:删除目标文件夹内多余的文档
– -a:归档模式,相当于-rlptgoD
– -v:显示详细操作信息
– -z:传输过程中启用压缩/解压
[root@svr7 ~]# rsync -avz /nsd/ /todir
[root@svr7 ~]# rsync -avz --delete /nsd/ /todir/ #同步时删除目标多余的文档
远程同步 rsync+SSH同步
• 与远程的 SSH目录保持同步
– 下行:rsync [...] user@host:远程目录 本地目录
– 上行:rsync [...] 本地目录 user@host:远程目录
虚拟机A:
# rsync -avz --delete /opt/ root@192.168.4.207:/opt/
# ls /opt
虚拟机B:
# ls /opt
虚拟机A:
# cp /etc/passwd /opt
# ls /opt
# rsync -avz --delete /opt/ root@192.168.4.207:/opt/
虚拟机B:
# ls /opt
#############################
实现实时同步
一 ssh无密码验证
虚拟机A:
1.生成公钥 私钥
[root@svr7 ~]# ssh-keygen #一路回车
[root@svr7 ~]# ls /root/.ssh/
2.传递公钥 到对方机器
[root@svr7 ~]# ssh-copy-id root@192.168.4.207
3.验证
# rsync -avz --delete /opt/ root@192.168.4.207:/opt/
二 部署inotify-tools工具软件,监控目录内容变化
真机的操作:
# wget 点击打开链接 (如果在linux中下载遇见域名解析失败,请用浏览器打开这个网址,并下载,然后传入linux虚拟机)
# scp /root/桌面/tools.tar.gz root@192.168.4.7:/root/
虚拟机A:
# yum -y install gcc //准备编译环境【厨房】
# tar -xf inotify-tools-3.13.tar.gz -C /usr/src/
# cd /usr/src/inotify-tools-3.13/
# ./configure //配置【准备几颗鸡蛋.. ..】
# make //编译【炒菜】
# make in