rsync+inotify实时备份

rsync简介

rsync有四种应用模式 1、shell本地模式 2、远程shellmoshi 3、查询模式 4、服务器模式

1、本地模式用于复制目录到另一个目录 rsync -av aa /bb

2、远程shell模式将本地目录复制到另外一个系统当中 rsync -av aa 192.168.0.10:bb

3、查询(列表)模式查看远程系统中目录的内容 rsync -a 192.168.0.10:bb

4、服务器模式基于C/S模式 服务器启用一个后台守护进程 用于接收或者发送文件

服务器地址

server     192.168.0.101 /web/webdata

web1       192.168.0.103 /web1/webdata

web2       192.168.0.104 /web2/webdata

web3       192.168.0.106 /web3/webdata

1、下载相关软件包

wget http://rsync.samba.org/ftp/rsync/src/rsync-3.1.1.tar.gz

wget https://cloud.github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz

在server上配置rsync

touch /etc/rsyncd.conf

uid = nobody

gid = nobody

use chroot = no

max connections = 10

strict modes = yes

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log

[web]

path = /web/webdata/

comment = ixdba file

ignore errors

read only = no

write only = no

hosts allow = *

list = false

uid = root

gid = root

auth users = webuser

secrets file = /etc/server.pass

各个参数含义

uid    守护进程具有的用户ID

gid    守护进程具有的组ID

max connections    最大并发连接量 默认0 表示无限制

strict modes    检查文件的权限 yes为检查口令文件权限 密码文件的权限必须为root用户权限

pid file    pid文件路径

lock file 支持max connections的锁文件

log file 日志文件路径

[webuser]    模块名称

path    备份的文件或者目录路径

ignore errors    表示忽略I/O错误

read only 设置为no用户可以上传文件 YES表示只读

write only 设置为no用户可以下载文件 yes表示不能下载

hosts allow    允许的主机

hosts deny    拒绝连接的主机

list    当客户请求可使用的模块列表时,该模块是否被列出 默认为true 若要隐藏咋设置为false

auth users    可以连接该模块的用户名

secerts file 用户:密码 文件的路径

创建密码文件

echo "backup" >> /etc/server.pass

注: 发布服务器上的密码文件只设置密码 节点服务器上的密码文件需要设置账户:密码。

在server系统上启动rsync守护进程

/usr/local/bin/rsync --daemon

echo "/usr/local/bin/rsync --daemon" >>/etc/rc.local 将rsync服务添加到自启动文件中

在web123台服务器上分别安装rsync服务

安装inotify-tools在发布服务器上(节点服务器无须安装)

检测内核是否支持 低于2.6.13则需要重新编译内核 加入对inotify的支持

uname -r

[[email protected] ~]# ll /proc/sys/fs/inotify

总用量 0

-rw-r--r-- 1 root root 0 2月  27 10:25 max_queued_events

-rw-r--r-- 1 root root 0 2月  27 10:25 max_user_instances

-rw-r--r-- 1 root root 0 2月  27 10:25 max_user_watches

如果有以上三项输出 就表示系统支持inotify 下面进行安装

tar -zxvf inotify-tools-3.13.tar.gz

cd inotify-tools-3.13

./configure

make

make install

ll /usr/local/bin/inotifywa*

-rwxr-xr-x 1 root root 32030 2月  27 10:39 /usr/local/bin/inotifywait

-rwxr-xr-x 1 root root 33979 2月  27 10:39 /usr/local/bin/inotifywatch

安装完成后会生成inotifywait和inotifywatch 两个文件,inotifywait用于等待文件或者文件集上的一个特定时间,可以监控文件和目录设置 inotifywatch用于收集被监控的文件系统统计数据

在三个节点服务器上配置rsync

web1

uid = nobody

gid = nobody

use chroot = no

max connections = 10

strict modes = yes

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log

[web1]

path = /web1/webdata

comment = web1 file

ignore errors

read only = no

write only = no

hosts allow = *

list = false

uid = root

gid = root

auth users = web1user

secrets file = /etc/server.pass

web2

uid = nobody

gid = nobody

use chroot = no

max connections = 10

strict modes = yes

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log

[web2]

path = /web2/webdata

comment = ixdba file

ignore errors

read only = no

write only = no

hosts allow = *

list = false

uid = root

gid = root

auth users = web2user

secrets file = /etc/server.pass

web3

uid = nobody

gid = nobody

use chroot = no

max connections = 10

strict modes = yes

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log

[web3]

path = /web3/webdata

comment = ixdba file

ignore errors

read only = no

write only = no

hosts allow = *

list = false

uid = root

gid = root

auth users = web3user

secrets file = /etc/server.pass

以上配置完三台节点服务器的rsyncd.conf后 并分别创建密码文件。后依次启动rsync守护进程,并将服务加到自启动文件

echo "/usr/local/bin/rsync --daemon" >> /etc/rc.local

配置服务器内容发布节点

通过编写shell脚本来实现内容的发布

#!/bin/bash

host1=192.168.0.103

host2=192.168.0.104

host3=192.168.0.106

src=/web/webdata/

dst1=web1

dst2=web2

dst3=web3

user1=web1user

user2=web2user

user3=web3user

/usr/local/inotify/bin/inotifywait -mrq --timefmt ‘%d/%m/%y %H:%M‘ --format ‘%T %w%f%e‘ -e modify,delete,create,attrib $src | while read files

do

/usr/local/bin/rsync -vzrtopg --delete --progress --password-file=/etc/server.pass $src [email protected]$host1::$dst1

/usr/local/bin/rsync -vzrtopg --delete --progress --password-file=/etc/server.pass $src [email protected]$host2::$dst2

/usr/local/bin/rsync -vzrtopg --delete --progress --password-file=/etc/server.pass $src [email protected]$host3::$dst3

echo "${files} was rsynced" >> /tmp/rsynclog 2>&1

done

将此脚本放到后台运行,并加入到自启动文件

sh /root/rsync.sh &

echo "/root/rsync.sh &">>/etc/rc.local

脚本中相关参数如下

--timefmt 指定时间的输出格式

--format 指定变化文件的详细信息

有时候会遇到这样的情况,发布服务器的目录中写入一个较大的文件,当写入这个大文件需要一段时间时,inotify会持续不断的输出该文件被更新的信息 这样就会不断出发rsync执行同步操作,占用大量系统资源,针对这种情况,最理想的罪罚是等待写完后在触发rsync同步,这种情况下,可以修改inotify的监控事件 即-e close_write,delete,create,attrib

测试rsync+inotify实时同步

在server服务器的/web/webdata/目录中添加或者删除文件或者目录,查看节点服务器是否更新。

时间: 2024-11-05 16:07:16

rsync+inotify实时备份的相关文章

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源服务器, r

rsync+inotify实时备份加nfs挂载实战

因公司近期业务要求需要搭建一套服务具体要求如下图: 1.基本备份要求 已知 3 台服务器主机名分别为A(web01).B(backup) .C(nfs01) 要求: 每天晚上 0 00 点整在 b Web 服务器 A A 上 打包 备份系统配置文件.网站程序目录及访 问日志并通过 c rsync 命令推送备份服务器 B B 上备份保留(备份思路可以是先在本地按日期 打包,然后再推到备份服务器 B B 上). 具体要求如下: 1)Web 服务器 A 和备份服务器 B 的备份目录必须都为/backu

rsync + inotify 实时备份

rsync配置步骤 服务器端 1. 安装rsync yum install rsync 2. 修改配置文件 vim /etc/rsyncd.conf #默认不存在需要自己创建 ############################## uid=rsync gid=rsync use chroot =no max connections=200 timeout=600 pid file=/var/run/rsyncd.pid lock file =/var/run/rsyncd.lock log

rsync+inotify实时数据同步单目录实战

rsync+inotify实时数据同步单目录实战 inotify是一个强大的.细粒度的.异步的文件系统事件监控机制,linux内核从2.6.13起加入了inotify支持,通过inotify可以监控文件系统中添加.删除.修改.移动等各种事件,利用这个内核接口,第三方软件可以监控文件系统下文件的各种变化情况,而inotify-tools正是实施监控的软件. inotify配置是建立在rsync服务基础上的配置过程 操作系统 主机名 网卡eth0 默认网关 用途 [email protected]

rsync+inotify实时同步环境部署记录

随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足.首先,rsync在同步数据时,需要扫描所有文件后进行比对,进行差量传输.如果文件数量达到了百万甚至千万量级,扫描所有文件将是非常耗时的,并且正在发生变化的往往是其中很少的一部分,这是非常低效的方式.其次,rsync不能实时的去监测.同步数据,虽然它可以通过linux守护进程的方式进行触发同步,但是两次触发动作一定会有时间差,这样就导致了服务端和客户端数据可能出现不一致,无法在应

rsync+inotify同步备份MYSQL数据

rsync+inotify同步备份MYSQL数据 rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,但是rsync不能实时的去监测.同步数据.inotify 是一种强大的.细粒度的.异步的文件系统事件监控机制,通过inotify可以监控文件系统中添加.删除,修改.移动等各种细微事件. 实验环境:备份端192.168.1.123(rsync server) 备份源192.168.124(rsync client inotify mysql)

rsync+inotify实时数据的同步实例

rsync+inotify实时数据的同步 一.rsync+inotify的组合为什么会出现?? rsync缺陷: 1.由于rsync在实施大量数据备份时,工作方式是扫描整个数据文 件,其实发生更改  的只是一小部分,导致过多的占用系统资源.                2.rsync不能实时的去监测.同步数据,虽然它可以通过linux守护进程的方式进行触发同步,但是两次触发动作一定会有时间差,这样就导致了服务端和客户端数据  可能出现不一致,无法在应用故障时完全的恢复数据. inotify优点

rsync远程同步及rsync+inotify实时同步

rsync远程同步及rsync+inotify实时同步 思维代入 正确.有效的备份方案是保障系统及数据安全的重要手段.在服务器中,通常会结合计划性任务.shell脚本来执行本地备份.但有时候为了提高备份的可靠性,异地备份也是非常有必要的.那下面就给大家介绍一种异地远程备份的方法:rsync远程备份. rsync简介 rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份.保持链接和权限,且采用优化的同步算法,在传输前执行压缩,因此非常适用于异地备份.镜像服务等应用

配置rsync+inotify实时同步

配置rsync+inotify实时同步Linux从2.6.13版内核开始提供了inotify通知接口,用来监控文件系统的各种变化情况,如文件的存取,删除,移动,修改内容及属性等.利用这个机制,可以实现文件异动警告,增量备份,针对目录或文件的变化及时做出响应. 将inotify机制与rsync工具结合,可以实现触发式备份(实时同步),只要原始位置的文档发生变化,则立即启动增量备份,否则处于静默等待状态,避免了按固定周期备份是存在的延迟性,周期过密等问题. 正因为inotify通知机制有Linux内