设为首页 收藏本站
查看: 549|回复: 0

[经验分享] Rsync+inotify-tools数据实时同步

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-8-18 09:25:13 | 显示全部楼层 |阅读模式
------------------------------以下部分在两个节点上执行
1、防火墙开放873端口(两个节点)
1
2
3
4
# vim /etc/sysconfig/iptables
-A INPUT -p tcp --dport 873 -j ACCEPT
# /etc/init.d/iptables restart
# /etc/init.d/iptables save



2、关闭selinux(两个节点)
1
2
# sed -i "s/SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
# cat /etc/selinux/config




3、建立所需目录,上传软件到soft下(两个节点)
1
2
3
#  mkdir -p  /usr/local/download     (软件下载目录)
#  mkdir -p  /usr/local/backup      (备份文件放置目录)
#  mkdir -p  /usr/local/script       (脚本目录)





安装相关依赖包(两个节点)
1
#  yum -y install gcc gcc-c++ make perl wget





安装rsync(两个节点)
1
2
3
4
5
6
7
8
9
10
#  cd  /usr/local/download
#  wget https://www.samba.org/ftp/rsync/src/rsync-3.1.2.tar.gz
#  tar xf rsync-3.1.2.tar.gz
#  cd rsync-3.1.2
#  ./configure --prefix=/usr/local/rsync-3.1.2
# echo $?
# make
# echo $?
# make install && echo $?
#  ln -s /usr/local/rsync-3.1.2/ /usr/local/rsync




------------------------------以下在备份节点上配置
1、建立配置文件(备份节点)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#  vim /etc/rsync.conf
port = 873
log file=/var/log/rsync.log
pid file=/var/run/rsync.pid
lock file=/var/run/rsync.lock
secrets file=/etc/rsync.passwd
motd file = /etc/rsyncd.motd
transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
#hosts deny=
[backup]
comment= backup
path=/usr/local/backup
use chroot = no
max connections=4
read only = no
uid=root
gid=root
list = no
exclude=test
auth users=work
#hosts allow = 172.16.0.233







添加如下内容:
#pid文件的存放位置
pid file = /var/run/rsync.pid
#日志文件位置,启动rsync后自动产生这个文件,无需提前创建
log file = /var/log/rsync.log
#支持max connections参数的锁文件
lock file=/var/run/rsync.lock
#用户认证配置文件,里面保存用户名称和密码
secrets file = /etc/rsync.pw
#rsync启动时欢迎信息页面文件位置
motd file = /etc/rsyncd.motd
transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
#自定义名称
[backup]
#设置需要同步的目录
web path=/usr/local/backup
#模块名称与[backup]自定义名称相同
comment = backup
exclude = blank.png ; spinner.gif ; downsimple.png ; rails.png ; WEB-INF/
#默认端口
port = 873
#设置rsync运行权限为root
uid = root
#设置rsync运行权限为root
gid = root
#设置超时时间
timeout = 600
#最大连接数
max connections = 200
#默认为true,修改为no,增加对目录文件软连接的备份
use chroot = no
#设置rsync服务端文件为读写权限
read only = no
#不显示rsync服务端资源列表
list = no
#允许进行数据同步的客户端IP地址
hosts allow = 172.16.0.233
#可以设置多个目录

2、建立密码认证文件(备份节点)
1
2
#  vim /etc/rsync.pw
root:123456



3、设置权限(备份节点)
1
2
#  chmod 600 /etc/rsync.conf
#  chmod 600 /etc/rsync.pw



4、配置rsyncd.motd文件,开始传送的时候会显示(备份节点)
#  vi /etc/rsyncd.motd

输入以下内容:
###############################
#                                                                        #
#                     hello     everyone                         #
#                                                                        #
###############################
                  _____                &&&&_) )
                  \/,---<                &&&&&&\   \
                  ( )c~c~~@~@   ) —  —&&\   \
                    C  >/                \<  |&/
                    \_O/ -            _`*-'_/ /
                  ,- >o<-.              / ____ _/
                  /  \/  \            / /\     _)  _)
                 / /|  | |\ \          / /    )      |
                 \ \|  | |/ /          \ \   /          |
                  \_\  | |_/            \ \_          |
                  /_/`___|_\            /_/\____|
                    |   |  |                  \        \ |
                    |   |  |                  `.      )
                    |   |  |                    /    /
                    |__|_|_                 /_/|
                   (____)_)                |\_\_

5、启动rsync服务(备份节点)
1
2
3
# /usr/local/rsync/bin/rsync --daemon --config=/etc/rsync.conf
# ps -ef |grep rsync|grep -v grep
root      38142      1  0 19:36 ?        00:00:00 /usr/local/rsync/bin/rsync --daemon --config=/etc/rsync.conf



6、设置开机启动(备份节点)
1
2
#  vim /etc/rc.local
/usr/local/rsync/bin/rsync --daemon --config=/etc/rsync.conf



------------------------------以下在源节点执行
1、建立密码认证文件(源节点)
1
2
# vim /etc/rsync.pw
123456




2、设置权限(源节点)
1
#  chmod 600 /etc/rsync.pw






3、测试(源节点)
1
2
#  mkdir /usr/local/backup
# /usr/local/rsync/bin/rsync -avzP --port=873 /usr/local/backup/ root@172.16.0.234::backup  --password-file=/etc/rsync.pw




查看172.16.0.234 上是否有相应的目录

4、安装inotify-tools(源节点)
Linux下支持inotify的内核最小为2.6.13
4.1、查看是否支持inotify,有如下三个文件则表示支持(源节点)
1
2
3
4
# ll /proc/sys/fs/inotify
-rw-r--r-- 1 root root 0 Aug 17 12:49 max_queued_events
-rw-r--r-- 1 root root 0 Aug 17 12:49 max_user_instances
-rw-r--r-- 1 root root 0 Aug 17 12:49 max_user_watches



4.2、安装inotify-tools(源节点)
1
2
3
4
5
6
7
8
9
10
# cd /usr/local/download/
# wget http://github.com/downloads/rvoi ... y-tools-3.14.tar.gz
# tar xf inotify-tools-3.14.tar.gz
# cd inotify-tools-3.14
# ./configure --prefix=/usr/local/inotify-tools-3.14
# echo $?
# make
# echo $?
# make install && echo $?
# ln -s /usr/local/inotify-tools-3.14/ /usr/local/inotify-tools



4.3、查看是否支持,显示如下表示支持(源节点)
1
2
3
# ll /usr/local/inotify-tools/bin/inotifywa*
-rwxr-xr-x 1 root root 44287 Aug 17 12:54 /usr/local/inotify-tools/bin/inotifywait
-rwxr-xr-x 1 root root 41409 Aug 17 12:54 /usr/local/inotify-tools/bin/inotifywatch




5、修改内核参数(源节点)
1
2
3
4
#  vim /etc/sysctl.conf
fs.inotify.max_queued_events=99999999
fs.inotify.max_user_watches=99999999
fs.inotify.max_user_instances=65535




添加以下参数:
#inotify队列最大长度,如果值太小,会出现"** Event Queue Overflow **"错误,导致监控文件不准确
fs.inotify.max_queued_events=99999999
#要同步的文件包含多少目录
fs.inotify.max_user_watches=99999999
#每个用户创建inotify实例最大值
fs.inotify.max_user_instances=65535

6、编写监控脚本(源节点)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#  vim  /usr/local/script/inotify.sh
#!/bin/bash
#目标服务器ip,多个ip用空格分开
dstip="172.16.0.234"
#源服务器同步目录
src=/usr/local/backup
#目标服务器rsync同步目录模块名称
dst=backup
#目标服务器rsync同步用户名
user=root
#目标服务器rsync同步用户的密码在源服务器的存放路径
pwdir=/etc/rsync.pw
#目标服务器rsync同步日志文件
logfile=/var/log/rsync.log
/usr/local/inotify-tools/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib,move $src | while read file
do
for ip in $dstip
do
/usr/local/rsync/bin/rsync -avzP --port=873   $src $user@$ip::$dst --password-file=$pwdir
echo "${file} was rsynced" >>$logfile 2>&1
done
done







7、设置脚本权限并启动脚本(源节点)
1
2
#  chmod 700 /usr/local/script/inotify.sh
#  sh  /usr/local/script/inotify.sh &




8、设置开机启动(源节点)
1
#  echo "/usr/local/script/inotify.sh & ">>/etc/rc.local




9、测试
在源服务器上/usr/local/backup 下创建文件,查看相应的目标服务器是否有文件


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-259582-1-1.html 上篇帖子: 检查crontab合规,除root用户外,禁止普通用户使用crontab 下篇帖子: CentOS7 Failed to start LSB: Bring up/down解决方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表