只传输变化的数据。
yum -y install rsync #安装软件包
用法:
rsync [-选项] 源 目标
选项:
-a:归档模式,保留源文件的权限等信息。(常用)
-z:在传递的过程中进行压缩,传递完毕之后进行解压。(数据大于1G使用)
-v:显示详细信息。
-n:进行测试,不真正进行同步。
--delete:删除目标当中除了源文件之外的文件
例:rsync -av --delete /nsd/ /opt #这里的源一定要/nsd/,这样是同步nsd目录下的文件。如果/nsd则同步nsd目录。
远程同步:rsync和ssh
用法:
上行(上传):rsync [-选项] 本地目录 用户@目的主机ip:目录
例:rsync -av --delete /nsd/ root@192.168.4.207:/opt
下行(下载):rsync [-选项] 用户@目的主机ip:目录 本地目录
例:rsync -av --delete root@192.168.4.207:/opt/ /nsd
实时远程同步:
1°实现无密码验证:通过公钥、私钥实现ssh无密码验证。
主机A:生成公钥和私钥,把公钥传送给主机B,这样就可以实现无密码访问主机B
ssh-keygen #输入命令之后一路回车
生成的公钥:/root/.ssh/id_rsa.pub,生成的私钥:/root/.ssh/id_rsa
ssh-copy-id root@192.168.4.207 #把私钥传给主机B
2°监控源文件变化:使用inotify-tools监控工具
安装inotify-tools:
完成解压后,进入目录
./configure --prefix=/opt/myrpm #指定安装目录
make #编译
make install #安装
运行inotifywait:
inotifywait [-选项] 监控目录
选项:
-m:持续监控
-r:递归监控
-q:减少屏幕输出
-e:事件监控(没有这个选项表示监控所有事件)
例:inotifywait -mrq /nsd/ #只要/nsd目录下有文件发生变化就有信息输出
想要把监控和同步结合起来就必须要用脚本实现。
vim /rsync.sh
#!/bin/bash
while inotifywait -rq /nsd/
do
rsync -av --delete /nsd/ root@192.168.4.207:/opt
done
写总结的第十一天!!!