Rsync远程同步,实现下行 ,上行异地备份。配置rsync+inotify实时备份。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rsync远程同步,实现下行 ,上行异地备份。配置rsync+inotify实时备份。相关的知识,希望对你有一定的参考价值。

技术分享图片rsync作为一款最常用的备份工具,是linux/unix系统默认安装的基本组件之一。

本次实验环境:

1)VMware Workstation虚拟机环境

2)以CentOS7系统为实验对象,一台PC作为rsync源服务器,设置IP地址为,192.168.30.55 一台PC作为Rsync客户端,设置IP地址为,192.168.30.77。在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为同步源。

技术分享图片

首先配置rsync源服务器,

rsync作为同步源时以守护进程运行,为客户端提供备份源,配置rsync同步源需要修改配置文件rsyncd.conf,创建备份账号,然后将rsync程序以--daemon选项运行

(1)修改配置文件rsyncd.conf,设定相应的参数。

技术分享图片

技术分享图片

(2)为授权的备份帐户创建数据文件

根据上一步设置,创建帐户数据文件,添加一行用户记录,以冒号分隔,用户名称为backuper,密码为abc123.由于账号信息采用明文存放,因此应调整文件权限,避免账号信息泄露。

技术分享图片

技术分享图片

技术分享图片

(3)使用yum命令安装apache服务软件httpd,提供共享目录站点/var/www/html/,并启动服务,关闭防火墙,关闭增强型功能。

技术分享图片

技术分享图片

(4)启动rsync服务程序,运行参数--daemon,由于rsync不是系统基本服务,所以不能使用service命令,若要关闭rsync服务,则可以采用kill进程的方式,重启          rsync服务,则需删除rsync的pid进程文件。

技术分享图片

(5)更改备份源文件权限,使备份用户拥有相应的权限

技术分享图片

在客户端发起rsync同步操作请求

有了同步源服务器之后,就可以使用rsync工具来执行远程同步了,

(1)rsync命令格式及常用备份选项

技术分享图片

(2)配置源的表示方法

在执行同步任务时,rsync命令需要指定同步源服务器中的资源位置。rsync同步源的资源表示方式有两种;

1)用户名@主机地址::共享模块名             # 两个冒号分割形式

2)rsync://用户名@主机地址/共享模块名      #URL地址形式

例如:执行以下操作将访问rsync同步源,并下载到本地/web目录下进行备份

rsync -avz [email protected]::wwwroot /web  或者 rsync --avz rsync://[email protected]/wwwroot /web

首先我们在服务端备份源/var/www/html目录下创建一些文件

技术分享图片

然后在客户端执行以下操作将访问源服务端中的共享模块,并下载到本地的/web目录下

技术分享图片

技术分享图片

免交互发起同步备份请求,定期备份任务

技术分享图片

创建密码文件,将备份用户backuper的密码写入密码文件即可。并使用免交互同步,注意:要修改密码文件权限。

技术分享图片

技术分享图片

使用crontab -e 创建定期备份计划任务,

技术分享图片

技术分享图片

配置rsync+inotify实时同步

技术分享图片

技术分享图片

(1)调整inotify内核参数

在linux内核中,默认的inotify机制提供了三个调控参数:max_queue_event,max_user_instances,max_user_watches,分别表示监控事件队列,最多监控实例数,每个实例最多监控文件个数。当要监控的目录,文件数量较多或者变化较频繁时,建议加大这三个参数的值。直接修改/etc/sysctl.conf配置文件。

技术分享图片

技术分享图片

技术分享图片

(2)安装inotify-tools

inotify-tools可以从网站http://inotify-tools.sourceforge.net/下载。注意还需使用yum命令安装gcc gcc-c++, 提前准备好编译环境

将提前准备好的软件包进行解压,并进行配置编译安装

技术分享图片

技术分享图片


执行inotifywait命令,然后在另一个终端向/web目录下,创建文件,删除文件。跟踪屏幕输出结果。可以监控modify(修改),create(创建),move(移动),delete(删除),attrib(属性更改)等各种事件,一旦有变动就会立即输出结果

选项-e 指定要监控哪些事件

选项-m 表示持续监控

选项-r 表示递归整个目录

选项-q 表示简化输出信息

技术分享图片



(3)编写触发式同步脚本

为了实时同步更新,只要检测到变动时执行rsync上行同步操作即可。需要注意的是,当更新较频繁时应避免并发执行rsync备份--若rsync进程已经存在,则忽略本次同步,

技术分享图片

上述脚本用来检测本机/web目录的变动情况,一旦有更新触发rsync同步操作,上传备份至服务器192.168.30.55的共享模块wwwroot,实际目录为/var/www/html


技术分享图片

开启两个客户机终端,验证实时同步更新

在客户机的一个终端执行脚本,在另一个终端/web目录下创建文件

技术分享图片

技术分享图片

在服务端/var/www/html目录下可以看到客户端同步的文件

技术分享图片


以上是关于Rsync远程同步,实现下行 ,上行异地备份。配置rsync+inotify实时备份。的主要内容,如果未能解决你的问题,请参考以下文章

rsync远程同步:下行同步上行同步+inotify实时同步

rsync 远程同步部署 上行下行同步

rsync+inotify实现上行实时同步

rsync 远程同步——安全高效的异地备份策略

rsync+inotify实现触发式备份

linux安全---rsync