inotify+rsync及sersync部署流程
第一步:完成部署rsync守護進程服務
第二步:確認inotify軟件是否安裝
擴展yum源(擴展的倉庫):epel(企業級linux的yum源的擴展倉庫)
? 阿裏雲epel源:通過訪問阿裏yum源鏡像地址獲取
? 直接安裝epel源方式:yum install epel-release
yum install inotify-tools -y
/usr/bin/inotifywait --- 開啟實時監控服務,監控目錄或文件的數據變化
/usr/bin/inotifywatch --- 收集被監控的文件系統使用的統計數據,指文件系統事件發生的次數統計。
- inotify軟件服務優化
[root@inotify_server inotify]# cat /proc/sys/fs/inotify/max_user_watches
50000000
[root@inotify_server inotify]# cat /proc/sys/fs/inotify/max_queued_events
3276790
[root@inotify_server inotify]# echo “50000000” >/proc/sys/fs/inotify/max_user_watches
[root@inotify_server inotify]# echo “50000000” >/proc/sys/fs/inotify/max_queued_events
第三步:利用腳本的方式,將以上兩個服務串聯在一起
cat inotify.sh
#!/bin/bash
inotifywait -mrq --format "%w%f" -e create,close_write,delete,moved_to /data|while read line
do
rsync -az /data/ --delete [email protected]::backup --password-file=/etc/rsync.password
done
腳本在無限循環執行時: 方法一:利用ctrl+z,只是暫停腳本運行(暫停的進程) [root@nfs01 scripts]# jobs --- 前臺運行腳本命令,若放入後臺,可以通過jobs命令 [1]+ Stopped sh -x inotify.sh 方法二:kill -9 9857 9859 強制殺 pkill -f inotify 模糊殺
sersync部署流程:
第一步:完成部署rsync守護進程服務
第二步:部署sersync實時監控服務
第三步:確認軟件是否安裝(sersync)
綠色軟件包的安裝方式(二進制包安裝方式)
sersync軟件官方地址:https://github.com/wsgzao/sersync
進行軟件下載
將下載好的軟件程序上傳到服務器中(nfs服務器)
解壓縮軟件程序包
unzip sersync_installdir_64bit.zip
將軟件程序目錄移動到指定目錄中
mv sersync/ /usr/local/
第四步:編寫sersync配置文件
<filter start="false">
<exclude expression="(.).svn"></exclude>
<exclude expression="(.).gz"></exclude>
<exclude expression="^info/"></exclude>
<exclude expression="^static/"></exclude>
</filter>
說明:實時同步的排除功能
<inotify>
<delete start="true"/>
<createFolder start="true"/>
<createFile start="false"/>
<closeWrite start="true"/>
<moveFrom start="true"/>
<moveTo start="true"/>
<attrib start="false"/>
<modify start="false"/>
</inotify>
說明:指定監控文件或目錄變化的事件信息
<sersync>
<localpath watch="/data">
<remote ip="172.16.1.41" name="backup"/>
<!--<remote ip="192.168.8.39" name="tongbu"/>-->
<!--<remote ip="192.168.8.40" name="tongbu"/>-->
</localpath>
<rsync>
<commonParams params="-az"/>
<auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/>
<userDefinedPort start="false" port="874"/><!-- port=874 -->
<timeout start="false" time="100"/><!-- timeout=100 -->
<ssh start="false"/>
</rsync>
說明:sersync同步信息
watch="/data" 指定監控的目錄
ip="172.16.1.41" 指定備份服務器地址
name="backup" 指定備份服務器模塊信息
params="-az" 指定rsync推送命令參數
users="rsync_backup 指定rsync認證用戶
passwordfile="/etc/rsync.password" 指定rsync認證文件
第五步:啟動sersync服務
chmod +x sersync --- 授予sersync命令擁有執行權限
[root@nfs01 bin]# ./sersync -h
參數-d:啟用守護進程模式
參數-r:在監控前,將監控目錄與遠程主機用rsync命令推送一遍
c參數-n: 指定開啟守護線程的數量,默認為10個
參數-o:指定配置文件,默認使用confxml.xml文件
參數-m:單獨啟用其他模塊,使用 -m refreshCDN 開啟刷新CDN模塊
參數-m:單獨啟用其他模塊,使用 -m socket 開啟socket模塊
參數-m:單獨啟用其他模塊,使用 -m http 開啟http模塊
不加-m參數,則默認執行同步程序
./sersync -dro /usr/local/sersync/conf/confxml.xml
[root@nfs01 data]# ps -ef|grep sersync
root 10128 1 0 13:04 ? 00:00:00 ./sersync -dro /usr/local/sersync/conf/confxml.xml
inotify+rsync及sersync部署流程