什麼是實時同步vim
實時同步是一種只要當前目錄發生變化則會觸發一個事件,事件觸發後會將變化的目錄同步至遠程服務器bash
爲何要實時同步服務器
保證數據的連續性, 減小人力維護成本,解決nfs單點故障app
主機名 | 角色 | 外網IP | 內網IP |
---|---|---|---|
nfs | rsync的客戶端 | 10.0.0.31 | 172.16.1.31 |
backup | rsync的服務端 | 10.0.0.41 | 172.16.1.41 |
安裝sersync的依賴包code
[root@nfs ~]$ yum install rsync inotify-tools -y
建立存放源碼包的目錄xml
[root@nfs ~]$ mkdir /source_code
獲取sersync的安裝包進程
[root@nfs ~]$ cd /source_code/ [root@nfs /source_code]$ wget http://test.driverzeng.com/other/sersync2.5.4_64bit_binary_stable_final.tar.gz
綠色軟件解壓即用事件
[root@nfs /source_code]$ tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz [root@nfs /source_code]$ ll total 712 drwxr-xr-x 2 root root 41 Oct 26 2011 GNU-Linux-x86 -rw-r--r-- 1 root root 727290 May 9 2020 sersync2.5.4_64bit_binary_stable_final.tar.gz
建立服務安裝目錄ip
[root@nfs ~]$ mkdir /app
將軟件安裝在app目錄下rem
[root@nfs ~]$ mv /source_code/GNU-Linux-x86/ /app/
查看程序相關文件
[root@nfs ~]$ cd /app/ [root@nfs /app]$ ll GNU-Linux-x86/ total 1772 #程序配置文件 -rwxr-xr-x 1 root root 2214 Oct 26 2011 confxml.xml #程序啓動文件 -rwxr-xr-x 1 root root 1810128 Oct 26 2011 sersync2
修改配置文件
[root@nfs /app/GNU-Linux-x86]$ vim confxml.xml #修改inotify相關的配置 <inotify> <delete start="true"/> -----監控刪除 <createFolder start="true"/> -----監控建立目錄 <createFile start="true"/> -----監控建立文件 <closeWrite start="true"/> -----監控寫入 <moveFrom start="true"/> -----監控從哪移動過來 <moveTo start="true"/> -----監控移動到哪裏去 <attrib start="true"/> -----監控修改文件屬性 <modify start="true"/> -----監控修改文件內容 </inotify> <sersync> <localpath watch="/opt/data/nfs"> -----指定推送的/須要實時同步的目錄 <remote ip="172.16.1.41" name="nfs_backup"/> -----指定推送的服務端ip和模塊 <!--<remote ip="192.168.8.39" name="tongbu"/>--> <!--<remote ip="192.168.8.40" name="tongbu"/>--> </localpath> <rsync> <commonParams params="-az"/> -----指定rysnc推送命令的選項 <auth start="true" users="rsync_backup" passwordfile="/tmp/rsync.passwd"/> -----指定rsync推送命令須要的虛擬用戶以及密碼文件 #用sersync2啓動文件啓動服務,缺點是隻能利用kill -9終止進程 [root@nfs ~]$ /app/sersync/sersync2 -rdo /app/sersync/confxml.xml
使用systemd管理沒有啓動腳本的服務
[root@nfs ~]$ vim /usr/lib/systemd/system/sersyncd.service [Unit] #描述 Description=This is sersync start service #描述 After=xxx [Service] #後臺運行 Type=forking ExecStart=/app/sersync/sersync2 -rdo /app/sersync/confxml.xml ----服務啓動命令 ExecStop=kill -3 `ps -ef|grep [s]ersync|awk '{print $2}'` ----服務中止命令 ExecReload=kill -1 `ps -ef|grep [s]ersync|awk '{print $2}'` ----服務重啓命令 PrivateTmp=true #ps -ef|grep [s]ersync|awk '{print $2}'截取的是sersyncd服務的pid [Install] WantedBy=multi-user.target [root@nfs ~]$ systemctl start sersyncd [root@nfs ~]$ ps -ef|grep sersync root 8413 1 0 21:39 ? 00:00:00 /app/sersync/sersync2 -rdo /app/sersync/confxml.xml root 8448 6998 0 21:40 pts/0 00:00:00 grep --color=auto sersync
源碼包的安裝步驟
源碼包的安裝步驟 解壓 生成 編譯 安裝