linux下为了数据安全或者网站同步镜像,不得不考虑一些实时备份的问题,这篇linux下通过rsync+inotify 实现数据实时备份配置过程记录下来,防止遗忘配置过程记录下来,防止遗忘!如有建议技术支持QQ群555245732 配置架构如下:
本文出处参考:http://www.jbxue.com/article/10493.html
一.安装步骤(服务器端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.jbxue.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+inotify实现文件同步更新(配置)的更多相关文章
-
Centos7 rsync+inotify实现实时同步更新
inotify slave部署 把master上指定文件下载到本地的主机指定目录 yum install rsync –y [root@localhost ~]# useradd rsync ...
-
rsync+inotify实现文件实时同步
一.相关组件简介 1.rsync 与传统的cp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器 ...
-
linux rsync +inotify 实现 实时同步
前言: rsync可以实现触发式的文件同步,但是通过crontab守护进程方式进行触发,同步的数据和实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时,就触发rs ...
-
rsync+inotify实时数据同步多目录实战
rsync+inotify实时数据同步多目录实战 inotify配置是建立在rsync服务基础上的配置过程 操作系统 主机名 网卡eth0 默认网关 用途 root@58server1 1 ...
-
rsync+inotify实时数据同步单目录实战
rsync+inotify实时数据同步单目录实战 rsync+inotify实时数据同步单目录实战 inotify是一个强大的.细粒度的.异步的文件系统事件监控机制,linux内核从2.6.13起 ...
-
FileSync文件同步更新工具
FileSync是一款文件同步更新工具,它提供了对一个或多个应用的文件进行管理和同步更并功能,基于MD5的文件对比方式可以使管理者轻易地发布需要更新应用文件.FileSync主要模块包括:服务端,CL ...
-
centos 配置rsync+inotify数据实时同步2
一.Rsync服务简介 1. 什么是Rsync 它是一个远程数据同步工具,它在同步文件的同时,可通过LAN/WAN快速同步多台主机间的文件.Rsync使用所谓的“rsync算法”来使本地和远程两个主机 ...
-
centos 配置rsync+inotify数据实时同步
何为rsync? 定义: rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,非常适用于异地备份 何为源端和发起端? 在远程同步过程中,负责发起rs ...
-
CentOS系统rsync文件同步 安装配置
rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync 它的特性如下: 可以镜像保存整个目录树和文件系统. 可以很容易做到保持原来文件的权限.时间.软硬 ...
随机推荐
-
java中的日期操作Calendar和Date
1. Calendar转Date Calendar calendar = Calendar.getInstance(); Date date = calendar.getTime(); 2. Date ...
-
linux 添加基于weblogic的nodemanager的服务
用nodemanager来添加weblogic服务启动. 1.新建一个server,命名为Server1,端口设置为7055,其他采用默认值. 2.新建一个Machine,命名为Machine1.配置 ...
-
SQL常用命令整理
1.增加字段 alter table docdsp add dspcodechar(200)2.删除字段 ALTER TABLE table_NAME DROP COLUMNcolum ...
-
ubuntu15.04安装Chrome浏览器
首先到: https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb 下载最新的安装文件. 然后: sudo a ...
-
Eclipse CDT 代码高亮配置
效果图如下: 配置生效方式: 找到CDT的workspace目录中如下文件 X:\workspace\.metadata\.plugins\org.eclipse.core.runtime\.sett ...
-
Apache Struts ClassLoader操作漏洞
漏洞版本: Apache Struts 2.x 漏洞描述: CVE ID:CVE-2014-0094 Struts2 是第二代基于Model-View-Controller (MVC)模型的java企 ...
-
How to hide TabPage from TabControl
No, this doesn't exist. You have to remove the tab and re-add it when you want it. Or use a differen ...
-
virtual private catalog
The following databases are registered in the base recovery catalog: PROD1, PROD2, and PROD3.The dat ...
-
.Net程序员学用Oracle系列(8):触发器、任务、序列、连接
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.触发器 1.1.创建触发器 1.2.禁用触发器 & 启用触发器 & 删除触发器 2.任务 2.1.DBMS_ ...
-
timeit模块 与 time模块,计时的区别
time 模块,理解容易 import time time_start = time.time() time_end = time.time() time_use = time_end - time ...