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目录下可以看到客户端同步的文件
原文地址:http://blog.51cto.com/13728740/2151543