Rsync 自动同步压缩日志文件至备份服务器

业务场景:将全部服务器内的日志文件以小时为单位压缩后保存同时清空源日志文件。此后经过rsync + inotify 机制将压缩文件统一备份到日志服务器内。实现对日志文件的统一保存和备份。
rsync 和inotify这里就不介绍了!有兴趣的能够到官网查看。
大体服务架构图:web

Rsync 自动同步压缩日志文件至备份服务器

1、三台机器的IP分别为:br/>源服务器:172.20.2.108
目标(备份)服务器:172.20.2.225
@todo:从源服务器(172.20.2.108)的/data/目录下的全部的文件实时经过到目标服务器(172.20.2.225)的/data目录下
源服务器下须要安装rsync 和inotify,源服务器作为server端,实时的向目标服务器client端发送数据。shell

2、安装rsync
通常状况下centos 6.9下都安装了rsync,因此就没必要安装了,能够用如下命令检查一下是否已安装:rpm -qa | grep rsync
Rsync 自动同步压缩日志文件至备份服务器
上面显示了个人机器上没有安装rsync
若是没有安装请往下看:
cd /opt/softdir
wget http://rsync.samba.org/ftp/rsync/src/rsync-3.0.9.tar.gz
tar xf rsync-3.0.9.tar.gz
cd rsync-3.0.9 && ./configure --prefix=/opt/rsync && make && make install
rsync安装完毕!
3、建立同步文件所须要的密码文件,这样作是为了安全。
echo "newpassword" > /etc/rsyncd.secrets
echo "redhat" > /etc/rsyncd.secrets
注:这里的newpassword能够实任意字符。
处于安全考虑要把此文件的权限修改为600
chmod 600 /etc/rsyncd.secrets
4、安装inotify
先查看服务器是否支持inotify
ll /proc/sys/fs/inotify
Rsync 自动同步压缩日志文件至备份服务器
会有三个文件,这说明此服务器支持inotify的。vim

下面安装inotify:
cd /opt/softdir
wget -c https://nchc.dl.sourceforge.net/project/inotify-tools/inotify-tools/3.13/inotify-tools-3.13.tar.gz
tar xf inotify-tools-3.13.tar.gz
cd inotify-tools-3.13 && ./configure --prefix=/opt/inotify && make && make install
5、建立rsync复制脚本,用户shell实现,其功能就是:从源服务器(172.20.2.108)的/data/目录下的全部文件不管是添加、修改、删除文件,可以经过inotify监控到,并经过rsync实时同步到目标服务器(172.20.2.225)的/data下centos

vim  /usr/bin/rsync.sh
#!/bin/bash
host=172.20.2.225
src=/data/
des=web
user=root
/opt/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
/opt/rsync/bin/rsync  -zrtopg  --delete  --progress --password-file=/etc/rsyncd.secrets $src $user@$host::$des
echo "${files} was rsynced" > /var/log/rsyncd.log 2>&1
done

其中host是目标服务器的ip,src是源服务器要同步的目录,des是认证模块名,须要与目标服务器一致,user是创建密码文件里的认证用户。
修改rsync.sh的权限
chmod +x /usr/bin/rsync.sh
到此为止,源服务器的全部操做就完成了!下面配置目标服务器。 安全

————————————————    我是分割线—————————————————

1、目标服务器也要安装 rsync,安装方式跟源服务器同样,这里就不在赘述了
2、创建密码文件:
echo "root:redhat" >/etc/rsyncd.secrets
一样要给此文件一个600的权限
chmod 600 /etc/rsyncd.secrets
注:在源服务器创建的密码文件,只有密码,没有用户名;而在目标服务器里创建的密码文件,用户名与密码都有。
3、写rsync的配置文件
vim /etc/rsyncd.confbash

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
#log format = %t %a %m %f %b # 日志记录格式
[web]
path = /data
comment = web file
ignore errors
read only = no
write only = no
hosts allow = 172.20.2.108
hosts deny = *
list = false
uid = root
gid = root
auth users =root
secrets file = /etc/rsyncd.secrets

4、目标服务器启动 rsync
/opt/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf
5、源服务器启动同步:
/usr/bin/rsync.sh &
到这里,全部的都以完成。能够到源服务器下的/data目录下建立、删除文件,而后在看一下目标服务器下的/data下是出现一样的变化。服务器

相关文章
相关标签/搜索