线上系统架构设计 之 【文件系统同步篇】


  此项目是一个中小型APP类应用,服务器是运营商分配的两台公网IP的虚拟机,后面无共用存储等设备。由于前端要采用负载均衡技术,为了保证数据一致性和安全性,采用两台服务器网站文件之间实时同步,外加一台远程备份用服务器,共三台。所以选择Rsync+sersync 负责主服务器到远程服务器单向(参考之前文章),UNISON+inotify实现主备服务器之间实时相互同步。


一、安装过程:yum -y install ocaml

wget http://www.seas.upenn.edu/~bcpierce/unison//download/releases/unison-2.48.3/unison-2.48.3.tar.gz

  tar zxvf unison-2.48.3.tar.gz 

       cd unison-2.48.3

       yum -y install ctags-etags  

       make UISTYLE=text

       mkdir /root/bin

       cp unison /root/bin/

       cp unison /root/bin/unison-2.48

       cp unison /usr/local/bin/unison

       make install


     1026  tar zxvf inotify-tools-3.13.tar.gz
 1027  cd inotify-tools-3.13
 1028  ./configure --prefix=/usr/local/inotify
 1029  make && make install
 1030  echo "PATH=/usr/local/inotify/bin:$PATH" >/etc/profile.d/inotify.sh
 1031  chmod +x /etc/profile.d/inotify.sh
 1032  source /etc/profile
 1033  echo "/usr/local/inotify/lib" >/etc/ld.so.conf.d/inotify.conf
 1034  ldconfig -v | grep inotify
 1035  ln -sv /usr/local/inotify/include/ /usr/include/inotify
 1036  history

二、设置SSH互信  
848  ssh-keygen -t rsa
  851  scp -P 8022 -r id_rsa.pub 223.100.98.84:/root/.ssh/authorized_keys
  852  ssh -p 8022 [email protected] ifconfig

三、编写运行脚本 ,放置后台运行

#!/bin/bash
/usr/local/inotify/bin/inotifywait -mrq -e create,delete,modify,move /wqdata/mofi/ | while read line
do
/root/bin/unison -servercmd=/root/bin/unison -batch /wqdata/mofi/ ssh://[email protected]:8022//wqdata/mofi/
 echo "`date `sync successful" >> /wqdata/sync.log
done


手工同步命令:/root/bin/unison -servercmd=/root/bin/unison -batch /wqdata/mofi/ ssh://[email protected]:8022//wqdata/mofi/

 

nohup /wqdata/jiaoben/filetongbu.sh & 放到后台运行,可加入开机自启动。

你可能感兴趣的:(文件同步,unison)