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

1.pngrsync作为一款最常用的备份工具,是linux/unix系统默认安装的基本组件之一。

本次实验环境:

1)VMware Workstation虚拟机环境

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

4.png

首先配置rsync源服务器,

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

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

10.png

11.png

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

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

13.png

12.png

14.png

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

15.png

16.png

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

17.png

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

18.png

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

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

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

5.png

(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目录下创建一些文件

19.png

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

20.png

21.png

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

7.png

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

23.png

22.png

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

24.png

25.png

配置rsync+inotify实时同步

8.png

9.png

(1)调整inotify内核参数

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

27.png

26.png

28.png

(2)安装inotify-tools

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

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

29.png

30.png


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

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

选项-m 表示持续监控

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

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

31.png



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

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

32.png

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


33.png

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

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

35.png

34.png

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

36.png


猜你喜欢

转载自blog.51cto.com/13728740/2151543