十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这期内容当中小编将会给大家带来有关Linux怎么实现本、异地远程数据实时同步功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
水磨沟网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联建站2013年至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站。
0x0 测试环境
总部生产服务器与分部备份服务器要求实现异地数据备份,环境如下
**centos 6.5** 生产服务器目录: /home/zytest/files 备份服务器目录: /home/zytest/files 用户 / 密码: zytest / zytest
0x1 生产服务器环境搭建
0x1.1 安装gcc编译器和rsync
yum install gcc rsync -y
0x1.2 拷贝inotify到服务器并解压
cd /root tar xfvz inotify-tools-3.13.tar.gz
0x1.3 进入inotify 目录安装
cd inotify-tools-3.13 ./configure make make install /usr/local/bin/inotifywait ##检查是否安装成功
0x2 备份服务器环境搭建
0x2.1 安装 xinetd 和 rsync
yum install xinetd rsync -y
0x3 以下内容两台服务器同步操作
useradd -u 600 zytest passwd zytest zytest su - zytest -c 'mkdir /home/zytest/files' ##创建同步目录
0x4 备份服务器上配置rsyncd
0x4.1 编辑/etc/xinetd.d/rsync按照以下内容修改
disable = yes ==> disable = no flags = IPv6 ==> flags = IPv4 server_args = --daemon ==> server_args = --daemon --config=/etc/rsyncd.conf
0x4.2 编辑/etc/rsyncd.conf 并添加以下 脚本信息
uid = root gid = root use chroot = no max connections = 1000 strict mode = yes port = 873 pid file = /var/run/rsyncd.pid lock file = /var/run/rsyncd.lock log file = /var/log/rsyncd.log # following for user "zytest", change for other users [zytest] path = /home/zytest ignore errors auth users =zytest secrets file = /home/rsync-dst.ps read only = no list = false
Ps: rsyncd 配置文件在 xinetd上,所以备份服务器安装xinetd
0x4.3 把密码写入调用的密码文件并赋予权限
echo zytest:zytest >> /home/rsync-dst.ps chmod 600 /home/rsync-dst.ps
0x4.4 通过xinetd启动rsync
/etc/rc.d/init.d/xinetd restart
0x5 主服务器上配置inosync 脚本文件
** ##编辑/root/inosync添加脚本代码**
#!/bin/sh #chkconfig: 3 78 10 #This file exist from compile if [ ! -f /usr/local/bin/inotifywait ] then echo "cannot start. file inotifywait NOT exist!" exit fi #This file is runnable shell script if [ ! -f /usr/local/bin/inosync.so.1 ] then echo "contact administrator. inosync.so.1 NOT exist!" exit fi case "$1" in 'start') /usr/local/bin/inosync.so.1 & ;; 'stop') pid=`ps -ef | grep -v grep | grep "inotifywait" | awk '{print $2}'` kill -9 $pid 2>&1 ;; 'restart') $0 stop $0 start ;; esac
0x5.2 赋予脚本权限,设置开机启动
chmod a+x /root/inosync cp /root/inosync /etc/rc.d/init.d
0x5.3 配置调用的主脚本文件 /root/inosync.so.1
rhost=**备份服务器IP** user=zytest src=/home/zytest/files dst=zytest #dst corresponding to [zytest] in file /etc/rsyncd.conf on dst server log=/root/inosync.log /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M:%S' --format '%T %w%f %e' -e close_write,create,move,delete,attrib $src | while read files do echo == rsync begin == >> $log rsync -avP --password-file=/home/rsync-src.ps --delete $src $user@$rhost::$dst >> $log 2>&1 echo -- rsyncd -- >> $log date >> $log echo "${files} was rsynced " >> $log 2>&1 done
PS: %T后面有空格 %f和%e之间也有空格
0x5.4 赋予inosync.so.1脚本权限,拷贝到/usr/local/bin
chmod a+x /root/inosync.so.1 cp /root/inosync.so.1 /usr/local/bin
0x5.5 把密码写入调用的密码文件并赋予权限
echo zytest >> /home/rsync-src.ps chmod 600 /home/rsync-src.ps
0x6 目标服务器设置inosync自动启动并开启inosync服务
chkconfig --level 3 inosync on /etc/rc.d/init.d/inosync start
0x7 测试 END
在生产服务器/home/zytest/files目录下创建文件和文件夹,查看备份存储是否也同步了文件和文件夹,同步即成功。
过程可通过日志查看
tail -f /root/inosync.log
到此这篇关于Linux 通过Rsync+Inotify实现本、异地远程数据实时同步功能的文章就介绍到这了。
上述就是小编为大家分享的Linux怎么实现本、异地远程数据实时同步功能了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。