共计 2205 个字符,预计需要花费 6 分钟才能阅读完成。
环境介绍
1、源服务器及目录
172.20.2.10 /data
2、目的服务器及目录
172.20.2.11 /data
源服务器部署
1、rsync
与传统的cp、tar备份方式相比,rsync具有安全性高、备份迅速、支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等。
2、inotify
Inotify 是一种强大的、细粒度的、异步的文件系统事件监控机制,linux内核从2.6.13起,加入了Inotify支持,通过Inotify可以监控文件系统中添加、删除,修改、移动等各种细微事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而inotify-tools就是这样的一个第三方软件。
源服务器
1、安装rsync
安装rsync有两种方式,yum和编译安装,均可以,这里为方便采用yum安装
yum install rsync -y
2、安装inotify
首先下载源码包
[url href=http://pan.cloudcared.cn/f/6fd1e53eb99448d1b5fe]个人网盘[/url]
解压
tar zxf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
编译(需要gcc及make环境,提前安装)
./configure --prefix=/usr/local/inotify
make && make install
同步方式一、SSH互信
1、做SSH互信,采用脚本同步
首先做好两台机器的SSH互信
同步脚本
#!/bin/bash
host=172.20.2.11
src=/data/
des=/data
user=root
/usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e modify,delete,create,attrib ${src} | while read file
do
rsync -az --rsh=ssh --delete --progress ${src} ${user}@${host}:/${des}
done
同步方式二、密码保存至本地文件
1、将目的服务器密码保存至本地,读取密码文件来同步
目的服务器配置:
[root@172-20-2-11 ~]# echo "rsyncbak:rsyncpwd" > /etc/rsync.pwd
[root@172-20-2-11 ~]# chmod 600 /etc/rsync.pwd
请记住,在server端建立的密码文件,只有密码,没有用户名;而在备份服务端client里建立的密码文件,用户名与密码都有。
建立配置文件
vim /etc/rsyncd.conf
uid = root
gid = root
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 = /data
comment = web file
ignore errors
read only = no
write only = no
hosts allow = 172.20.2.11
hosts deny = *
list = false
uid = root
gid = root
auth users = rsyncbak
secrets file = /etc/rsync.pwd
启动服务
rsync --daemon --config=/etc/rsyncd.conf
源服务器配置:
[root@172-20-2-10 ~]# echo "rsyncpwd" > /etc/rsync.pwd
[root@172-20-2-10 ~]# chmod 600 /etc/rsync.pwd
其中rsyncpwd可以自己设置密码,rsync.pwd名字也可以自己设置
建立配置文件
vim /etc/rsyncd.conf
uid = root
gid = root
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 = /data
comment = web file
ignore errors
read only = no
write only = no
hosts allow = 172.20.2.11
hosts deny = *
list = false
uid = root
gid = root
auth users = rsyncbak
secrets file = /etc/rsync.pwd
启动服务
rsync --daemon --config=/etc/rsyncd.conf
同步测试
运行脚本,并打入后台执行
采用watch命令监控目的服务器的/data目录及/data目录中一个文件
[root@172-20-2-11 ~]# watch -d 'ls -l /data/'
[root@172-20-2-11 ~]# watch -d 'cat /data/test'
在源服务器/data目录创建、删除、修改文件,分别观察目的服务器种的变化
新建
修改
删除