配置rsync+inotify實時單向同步web
按期同步的缺點:
執行備份的時間固定,延期明顯,實時性差
當同步源長期不變化時,密集的按期任務是沒必要要的(浪費資源)
實時同步的優勢:
一旦同步源出現變化,當即啓動備份,實時性好
只要同步源無變化,則不執行備份,節省資源vim
建立主配置文件(vim /etc/rsyncd.conf)
address = 192.168.88.10 #rsync服務綁定IP
port 873 #默認服務端口873
log file = /var/log/rsyncd.log #日誌文件位置
pid file = /var/run/rsyncd.pid #進程號文件位置
[web] #共享名:用來鏈接是寫在url上的,切記 這裏推薦共享名和共享目錄名同樣最好
comment = web directory backup #共享描述話語
path = /filesrc #實際共享目錄
read only = no #是否僅容許讀取
dont compress = *.gz *.bz2 #哪些文件類型不進行壓縮
auth users = user1 #登陸用戶名自寫
secrets file = /etc/rsyncd_users.db #認證所需帳戶密碼文件(需自行建立-同上)bash
b.建立認證所需帳戶密碼文件
# vim /etc/rsyncd_users.db
user1:123456
# chmod 600 /etc/rsyncd_users.db 須修改權限,不然登陸報錯服務器
c.啓動服務
# rsync --daemon
# netstat -antp | grep :873url
d.設置映射用戶對共享目錄有權限(r)
# setfacl -m u:nobody:rwx /filesrc操作系統
inotify簡介
inotify 是一個 Linux 內核特性,它監控文件系統,而且及時向專門的應用程序發出相關的事件警告,好比刪除、讀、寫和卸載操做等。要使用 inotify,必須具有一臺帶有日誌
2.6.13 版本的內核操做系統。
inotify兩個監控命令:
inotifywait:用於持續監控,實時輸出結果(經常使用)
inotifywatch:用於短時間監控,任務完成後再出結果
inotify部署遞歸
inotifywait命令格式
格式:inotifywait -mrq -e 監控動做1,監控動做2 /監控目錄 &
示例:inotifywait -mrq -e create,delete /filesrc &
-m:始終保持事件監聽狀態
-r:遞歸查詢目錄
-q:只打印監控事件的信息
監控動做:modify(內容),create,attrib(權限),move,delete隊列
利用rsync+inotifywait結合腳本實現單向實時同步進程
a="inotifywait -mrq -e create,delete /filesrc" filesrc是指共享的目錄名
b="rsync -avz /filesrc/* root@192.168.88.20:/filedst" filedst是指同步到對方的那個目錄
$a | while read directory event file #while判斷是否接收到監控記錄
do
$b
done
注:用戶登陸時要求免密碼驗證
腳本最好放在家目錄下運行。
實驗結果驗證
在服務器端建立,刪除文件,查看備份端是否正常
拓展:調整inotify監控的文件數量 調整inotify內核參數(/etc/sysctl.conf) mak_queue_events 監控隊列大小 mak_user_instances 最多監控實例數 max_user_watches 每一個實例最多監控文件數