阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux下通过rsync+inotify 实现数据实时备份(远程容灾备份系统)

229次阅读
没有评论

共计 3195 个字符,预计需要花费 8 分钟才能阅读完成。

Linux 下为了数据安全或者网站同步镜像,不得不考虑一些实时备份的问题,这篇 Linux 下通过 rsync+inotify 实现数据实时备份配置过程记录下来,防止遗忘配置过程记录下来,防止遗忘!配置架构如下:

Linux 下通过 rsync+inotify 实现数据实时备份 (远程容灾备份系统)

一. 安装步骤 (服务器端 192.168.0.5)

1) 安装 rsync 点击下载 rsync-3.0.9.tar.gz
下载文件放到该目录下 /usr/src
#cd /usr/src
#tar -zxvf rsync-3.0.9.tar.gz // 解压文件
#cd rsync-3.0.9 // 进入该文件目录
#./configure // 主要的作用是对即将安装的软件进行配置, 检查当前的环境是否满足要安装软件的依赖关系
#make // 编译
#make install // 安装

2)安装 inotify  点击下载 inotify-tools-3.14.tar.gz
下载文件放到该目录下 /usr/src
#cd /usr/src
#tar -zxvf inotify-tools-3.14.tar.gz // 解压文件
#cd inotify-tools-3.14 // 进入该文件目录
#./configure // 主要的作用是对即将安装的软件进行配置, 检查当前的环境是否满足要安装软件的依赖关系
#make // 编译
#make install // 安装

3) 服务端编写文件夹监视脚本
#vi /srv/rsync.sh
rsync.sh 内容如下:
#!/bin/bash
src=/srv/test/  #监视改文件路径,文件夹内容发生改变触发服务器数据同步
des=backup      #客服端配置的模块(客服端会介绍)
host=”192.168.10.6″  #同步到的 IP 地址,如有多个用空格隔开。例如:host=”192.168.10.6 192.168.10.7″
/usr/local/bin/inotifywait -mrq –timefmt ‘%d/%m/%y %H:%M’ –format ‘%T %w%f’ -e              modify,delete,create,attrib $src | while read files #这边要主要下 inotifywait,只有 Linux 2.6.13 或更高版的才会兼容
do
for hostip in $host
do
#rsync -vzrtopg –delete –progress rsync@$hostip::$des $src –password-file=/etc/rsync.pas 该命令是客服端跟新后同步到服务器端
rsync -vzrtopg –delete –progress –password-file=/etc/rsync.pas $src rsync@$hostip::$des #改命令是服务器端跟新后同步到客服端(看具体使用情况选择)
#–password-file=/etc/rsync.pas 配置到客服端,也就是客户端路径下有 rsync.pas 用于配置登陆密码
#rsync 是客户端配置的登陆名
done
echo “${files} was rsynced” >>/tmp/rsync.log 2>&1  #生成日志文件
done

4)启动 nohup
#nohup /bin/bash /srv/rsync.sh &  // 后台不挂断地运行命令
#echo “nohup /bin/bash /root/bin/rsync.sh &” >> /etc/rc.local // 设置 linux 服务器启动自动启动 nohup

 rsync + inofity 服务端就配置好了,接下来我们来配置客服端

二. 安装步骤(客服端)

1) 安装 rsync 步骤如上!
2)配置 rsyncd.conf
#vi /etc/rsyncd.conf // 打开 rsyncd.conf
rsyncd.conf 内容如下:
uid = root
gid = root
port = 873 #post rsync 使用的端口号  也是默认端口号 www.linuxidc.com
hosts allow = 192.168.10.5          #allow hosts ip 应许的 ip 访问,也可以设置为 ip 段
max connections =
timeout=

  ##config file
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
#motd file = /etc/rsyncd.motd

##global config
[backup]
path =/srv/test  #客服端已 rsync 服务端同步的文件路径
comment = from 192.168.10.5  #解释
read only = no
list = no
##client sync config
auth users =rsync  #配置登陆名称
secrets file = /etc/rsync.passwd  #配置用户名密码文件

3)配置 rsync.passwd
#vi /etc/rsync.passwd
rsync.passwd 内容如下:
rsync:cyc  #rsync 登陆用户名  cyc 是登陆密码
#chomd 600 rsync.passwd #需要注意 rsync.passwd 的权限配置
客服端配置完成!

三. 如果再配置过程中出现如下问题,分析出错原因。

问题一:
@ERROR: chroot failed
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

原因:
服务器端的目录不存在或无权限,创建目录并修正权限可解决问题。

问题二:
@ERROR: auth failed on module backup
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

原因:
服务器端该模块(backup)需要验证用户名密码,但客户端没有提供正确的用户名密码,认证失败。
提供正确的用户名密码解决此问题。

问题三:
@ERROR: Unknown module‘backup’
rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]

原因:
服务器不存在指定模块。提供正确的模块名或在服务器端修改成你要的模块以解决问题。

RSync 实现文件备份同步详解   http://www.linuxidc.com/Linux/2014-09/106967.htm

利用 inotifywait 监控主机文件和目录 http://www.linuxidc.com/Linux/2013-03/81075.htm

利用 inotify+rsync 实现 Linux 文件批量更新 http://www.linuxidc.com/Linux/2012-01/52132.htm

inotify-tools+rsync 实时同步文件安装和配置 http://www.linuxidc.com/Linux/2012-06/63624.htm

rsync 同步完整配置 http://www.linuxidc.com/Linux/2013-06/85781.htm

CentOS 6.5 下 Rsync 远程同步 http://www.linuxidc.com/Linux/2014-05/101084.htm

Linux 文件夹对比并提取的差分文件技巧 -rsync 的妙用 http://www.linuxidc.com/Linux/2016-02/128307.htm

Rsync 的详细介绍 :请点这里
Rsync 的下载地址 :请点这里

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-11/137631.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3195字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中