一、rsync概述
rsync是类unix系统下的数据镜像备份工具——remote sync。一款支持快速增量备份的工具,支持本地复制,远程同步等,rsync 命令来同步系统文件之前要先登录remote 主机认证,认证过程中用到的协议有2种:ssh 协议和rsync协议。
rsync特性
1. 能更新整个目录和树和文件系统
2. 有选择性的保持符号链接、硬链接、文件属性、权限、设备以及时间等
3. 对于安装来说,无任何特殊权限要求
4. 对于多个文件来说,内部流水线减少文件等待的延时
5. 能用rsh、ssh或直接端口作为传输入口端口
6. 支持匿名rsync同步文件,是理想的镜像工具
二、同步源
rsync(服务器):
指备份操作的远程服务器,也称为备份源
主要包括两种:ssh源、rsync源
2.1、ssh同步源
实验环境准备:一台服务器,一台客户端
在服务器和客户端上创建单独的测试目录(/server/ssh、/client/ssh)
2.1.1、下行同步(下载)
rsync -avz 服务器地址:/服务器目录/ 本地目录
rsync –avz 192.168.115.198:/server/ssh/ /client/ssh/
-a:归档模式,递归并保留对象属性
-v:显示同步过程
-z:在传输文件时进行压缩
2.1.2、上行同步(上传)
rsync -avz /本地目录/* 服务器地址:/服务器目录
首先,在服务器端创建用来做上行同步的用户,并给予用户对上行同步文件所在的目录要有权限执行
要结合setfacl使用,保证安全性
在客户端进行上传文件
2.2、rsync同步源
实验环境准备:一台服务器,一台客户端
在服务器和客户端上创建单独的测试目录(/server/rsync、/client/rsync)
1)在服务器端创建主配置文件(/etc/rsyncd.conf)
2)创建密码文件
3)启动服务 rsync --daemon
2.2.1、下行同步
rsync -avz 用户名@服务器地址::共享模块名 /本地目录
rsync -avz rsync://用户名@服务器地址/共享模块名 /本地目录
解决方法,修改密码文件的权限
之后,重新启动rsync服务
先关闭 kill -s QUIT 进程号
再启动时会启动不成功,这时候要删除进程号的文件
再在客户端上连接就会成功了
2.2.2、上行同步
rsync -avz /本地目录/* 用户名@服务器地址::共享模块名
rsync -avz /本地目录/* rsync://用户名@服务器地址/共享模块名
首先,要修改模块的权限
再测试,就成功了
--delete删除目标地址有,而源地址没有的文件
三、免密码验证
3.1、ssh源(密钥对)
在客户端生成密钥对
3.2、.rsync同步源(变量)
export RSYNC_PASSWORD=虚拟用户密码
四、自动实时同步备份
定期同步的不足
执行备份的时间固定,延期明显,实时性差
当同步源长期不变化时,密集的定期任务是不必要的
实时同步的优点
一旦同步源出现变化,立即启动备份
只要同步源无变化,则不执行备份
4.1、配置inotify
先配置文件(/etc/sysctl.conf)6.*下的优化 (可有可无) | |
mak_queue_events = 16384 | 监控队列大小(16384) |
mak_user_instances = 1024 | 最多监控实例数(1024) |
max_user_watches = 1028576 | 每个实例最多监控文件数(1028576) |
环境配置:安装gcc*,安装包准备好
1)解压安装
2)inotifywait:用于持续监控,实时输出结果
inotifywatch:用于短期监控,任务完成后再出结果
创建用来做上行同步的用户,并给予用户对上行同步文件所在的目录要有权限执行
4.2、主从服务器单向实时同步
rsync+ inotify(实时同步,单向同步工具。结合下面的脚本使用)
测试验证(实时同步,单向同步工具)
4.3、unison + inotify 双向实时同步
4.3.1、实现双向免秘钥文件传输
1)实现同步的两个目录
创建目录 客户端: /client/ssh/ 服务器端: /server/ssh/
2)如若用root来实现登录的话,生成密钥对,以便于免密码验证
ssh-keygen -t rsa
ssh-copy-id root@192.168.115.199 (服务器ip)
ssh-keygen -t rsa
ssh-copy-id root@192.168.115.198(客户端ip)
服务器端秘钥生成同上
4.3.2、安装三个软件
1)先安装inotify(需先安装gcc*)
2)再安装ocaml
./configurer make world opt make install
3)安装unison
把生成的脚本拷贝出来
接下来同样的操作在服务器端也做一遍。。。。
4.3.3、配置脚本
客户端
服务器端
取消提示信息使用nohup方式执行脚本
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。