首页 > 代码库 > rsync远程同步
rsync远程同步
防伪码:既然目标是地平线,留给世界的只能是背影
第十三章 rsync远程同步
前言:本章主要讲解实现快速、安全、高效的异地备份,编写触发式同步脚本,实现数据同步。
一、理论部分实验
1、 配置rsync源服务器A(同步源提供数据的原始位置,发起端读取同步源的数据)
1)建立/etc/rsyncd.conf配置文件
Vi /etc/rsyncd.conf
注意:如果采用匿名同步的方式,只要将其中的auth users和secrets file配置记录去掉就可以了。
2) 为备份账户创建数据文件
Vi /etc/rsyncd_users.db
3)启动rsync服务程序
如果要结束rsync进程,可以执行kill $(cat /var/run/rsyncd.pid)
2、 使用rsync备份工具(在rsync客户机,发起端,服务器B)
1) 例:将文件/etc/fstab、目录/boot/grub同步备份到/opt目录下(相当于本地备份)
2) 例:将rsync同步源上的网站根目录下载到本地的/root下进行备份(远程备份)
首先要配置防火墙:
然后确认rsync同步源上的网站根目录:
最后在rsync客户机上执行备份
查看/root下有没有网页
3) 例:将源服务器中的wwwroot共享模块(网站根目录),下载到本地的/myweb目录下,(删除目标位置有而原始位置没有的文件)
首先确认在客户机上的/myweb下只有一个网页(123.html)
然后执行备份
注:-a表示递归模式,保留文件的权限、属性等信息
-v表示显示同步过程的详细信息
-z表示在传输文件时进行压缩
-H表示保留硬连接文件
--delete表示删除目标位置有而原始位置没有的文件(更安全)
查看在客户机的/myweb(里面只有同步源服务器上的网页,本地的123.html备份删除,因为加了--delete的备份选项)
4) 例:每天晚上22:30对服务器的网站做一次同步
首先创建一个密码文件,保存backuper的密码
里面内容为pwd123:
然后设置权限,并做计划任务:
编辑任务计划(crontab -e)
删除客户机的/myweb下的所有数据
当前时间为23:23,我把计划任务设置为23:24
时间到了之后查看:
3、 配置rsync+inotify实时同步
作用:将rsync工具与inotify机制相结合,可以实现触发式备份(实时同步),只要原始位置的文档发生变化,则立即启动增量备份操作。
1) 调整inotify内核参数(文件数量较多或者变化较频繁时需要调整,把数值加大)
Vi /etc/sysctl.conf
执行sysctl -p更新
2) 安装inotify-tools(软件到ftp或本机上找)
先执行configure,然后执行make && make install
3)以监控网站目录/var/www/html为例(当/var/www/html进行增删改查的时候就会动态显示监控信息)
注:-m表示持续监控
-r表示递归整个目录
-q表示简化输出信息
-e表是用来指定要监控哪些事件
二、 综合实验(编写触发式同步脚本)
实验目标:检测本机/var/www/html目录,一旦有更新就触发rsync的同步操作,上传备份至服务器192.168.1.7的/var/www/html目录下,实现网站同步,保持两个站点的文件一致。类似于dns的主从复制。
首先在同步源上进行操作:(配置ssh源分为四步)
1)创建用户rput
useradd rput && passwd rput
2)开启sshd服务
service sshd start
3) 允许rput用户登录
Vi /etc/ssh/sshd_config
AllowUsers rput@192.168.1.8
4) 启用密钥对验证
Vi /etc/ssh/sshd_config
配置发起端:(实现实时同步需要使用秘钥对的方式验证身份)
1)建立秘钥对文件实现无交互式登录
客户机(发起端)创秘钥对(公钥、私钥)
上传公钥文件
导入公钥信息到数据库文件
使用秘钥对验证
2)在发起端安装inofity工具
安装inotify-tools(同上,安装包在附件中)
3) 编写触发式同步脚本
Vi /opt/inotify_rsync.sh
4) 执行脚本
设置权限:Chmod +x /opt/inotify_rsync.sh
设置开机自动启动:Echo ‘/opt/inotify_rsync.sh’ >> /etc/rc.local
执行脚本sh /opt/inotify_rsync.sh
5) 清空客户端/var/www/html中的网页(方便测试)
6) 在/var/www/html中添加网页yangwen.html
7) 在服务器192.168.1.7上查看/var/www/html中有没有a.html (如果有代表同步正常)
注:若实验不通,则给同步源192.168.1.7中的/var/www/html修改属性
例如:
谢谢观看,真心的希望能帮到您!
本文出自 “一盏烛光” 博客,谢绝转载!
rsync远程同步