rsync可以用来实现数据本地镜像和远程备份。

1,可以镜像保存整个目录和文件。

2,可以增量同步数据,文件传输率高。

3,可以保持原文件的权限,时间等属性。

4,可以加密传输数据。

5,可以使用rcp、ssh等方式来传输文件。

6,支持匿名传输。

很多操作系统默认都已经安装rsync服务,如果没有安装可以下载安装。

下载wget  http://rsync.samba.org/

安装:

#tar zxvf rsync-3.0.4.tar.gz

#cd rsync-3.0.4

#make

#make install

利用rsync可以实现远程容灾备份。

如:A、B两个linux系统,A系统作为网站服务器,B系统作为A的远程容灾备份机。因此需要A、B两个都安装有rsync软件,同时A系统作为服务端,B系统作为客户端。在A系统上运行rsync守护进程,在B系统上通过crontab来定时备份A系统的数据。

在A系统上配置:

# vim  /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/rsync.log

 

[ixdba]

path = /webdata

comment = ixdba file

ignore errors

read only = no

hosts allow = *

hosts deny = 192.168.1.100

list = false

uid = root

gid = root

auth users = backup

secrets file = /etc/server.pass

其中,/etc/server.pass中添加如下:

#cat /etc/server.pass

backup:ixdba123

#chmod 600 /etc/server.pass

 在A系统上启动rsync进程

#/usr/local/bin/rsync  --daemon

#ps -ef | grep rsync

root  20345  1  0   15:37  ?   00:00:00  /usr/local/bin/rsync  --daemon

在B系统上配置rsync

为了使同步过程中不用输入密码,在B系统上创建一个secrets file ,此文件内容为A 系统rsyncd.conf文件中“auth users” 选项指定用户的密码。

#/usr/local/bin/rsync  -vzrtopg  --delete  --progress --exclude "*access*" --exculde  "debug*"  backup@192.168.1.100::ixdba   /ixdba.net   --password-file=/etc/server.pass

#cat /etc/server.pass

ixdba123

#chmod  600 /etc/server.pass

设置定时备份策略

触发同步知道方式有很多,可以将指令放到crontab来执行。自动完成数据备份。比如:

crontab -e

10 1 * * *  /usr/local/bin/rsync  -vzrtopg  --delete  --progress --exclude "*access*" --exculde  "debug*"  backup@192.168.1.100::ixdba   /ixdba.net   --password-file=/etc/server.pass

就可以实现远程容灾备份。

但是通过这样的方法有个问题,就是rsync通过crontab来触发执行,但是在两次触发同步操作的时间间隔内,服务器和客户端数据肯能出现不一致。如果在这个时间间隔出现问题,那就意味着数据丢失。那么就需要另外的一个工具来实现0丢失,这就是inotify

需要rsync + inotify来实现数据实时备份。

inotify从linux2.6.13版本开始支持。它是一个文件系统监控工具,通过它可以监控文件添加、删除、修改、移动等操作事件。随时随地实时监控数据的变化,并触发rsync来实时同步数据。

#uname -r

2.6.18-194.el5PAE

# ll  /proc/sys/fs/inotify/

总计 0
-rw-r--r-- 1 root root 0 04-18 15:32 max_queued_events
-rw-r--r-- 1 root root 0 04-18 15:32 max_user_instances
-rw-r--r-- 1 root root 0 04-18 15:32 max_user_watches

有以上3项输出表示系统默认支持inotify,可以开始安装inotify-tools。

wget  http://inotify-tools.sourceforge.net

# tar zxvf  inotify-tools-3.14.tar.gz

#cd  inotify-tools-3.14

#./configure

#make

#make install

#ll  /usr/local/bin/inotifywa*

-rwxr-xr-x 1 root  root  37264  04-14  12:30 /usr/local/bin/inotifywait

-rwxr-xr-x 1 root  root  37264  04-14  12:30 /usr/local/bin/inotifywatch

... ...