rsync+inotify配置

rsync+inotify配置

下載rsync源碼:http://rsync.samba.org
安裝rsync

#tar zxvf rsync-3.1.2.tar.gz
#cd rsync-3.1.2
#./configure
#make && make install

rsync有四種應用模式
shell模式(本地模式)
遠程shell模式(利用ssh)
查詢模式(列表模式)
服務器模式

#rsync SRC DST
例:
    本地模式:
  

 #rsync -av /root /tmp    複製/root目錄及其文件到/tmp下
    #rsync -av /root/ /tmp  複製/root目錄下的文件到/tmp下
        -a --archive 歸檔模式
        -v --verbose 輸出詳細模式信息

        
    遠程模式:

    #rsync -av /root 192.168.0.99:/tmp



    列表模式:
  

  #rsync -a 192.168.0.99:/tmp 查看遠程主機上的/tmp目錄下的內容

            
rsync服務器端配置文件/etc/rsyncd.conf(需手動創建)包含全局參數和模塊參數

uid = nobody                      #當該模塊傳輸文件時守護進程的用戶ID,默認nobody
gid = nobody                      #當該模塊傳輸文件時守護進程的用戶組ID,默認nobody
use chroot = no                   
max connections = 10              #指定模塊最大併發連接數,默認爲0,沒有限制
strict modes = yes                #是否檢查口令文件權限,yes時密碼文件必須是root用戶權限
pid file = /var/run/rsyncd.pid    #rsync守護進程的PID文件路徑
lock file = /var/lock/rsyncd.lock #指定支持max connections的鎖文件,默認是/var/run/rsyncd.conf
log file = /var/log/rsyncd.log    #rsync日誌文件路徑
[data]                            #定義模塊名稱
path = /data                      #需要備份的文件
comment = test rsync              #說明
ignore errors                     #忽略一些無關的I/O錯誤
read only = no                    #yes爲只讀,no表示可以上傳文件
write only = no                   #yes表示不能下載,no表示可以下載
hosts allow = *                   #允許連接的主機
hosts deny =192.168.0.103         #禁止連接的主機
list = false                      #設定用戶請求可用的模塊列表時,該模塊是否被列出,默認ture(列出)
uid = root                        #
gid = root                        #
auth user =backup                 #定義可連接模塊的用戶名,多個用逗號隔開。與系統用戶無關
secrets file = /etc/rsync/server.pass #存儲auth user定義的用戶密碼文件路徑。格式“用戶:密碼”

 
server.pass文件

backup:123456


修改文件權限

#chmod 600 /etc/rsync/server.pass


客戶端也要保存該文件但只保存密碼
/etc/rsync/server.pass

123456



在服務器端開啓服務

#/usr/local/bin/rsync --daemon



在客戶端執行

#/usr/local/bin/rsync -vzrtopg --delete --progress --exclude "*access*" --exclude "debug*" [email protected]::data /data --password-file=/etc/rsync/server.pass



在-vzrtopg中
    v --verbose 詳細輸出模式
    z --compress 在傳輸對文對文件進行壓縮處理
    r --recursi 對子目錄以遞歸模式處理
    t --times 保持文件時間信息
    o --owner 保持文件屬主信息
    p --perms 保持文件權限
    g --group 保持文件屬組信息
--delete 指定以rsync服務器端爲基準進行數據鏡像同步
--progress 顯示同步過程
--exclude 用於排除不需要傳輸的文件類型
[email protected]::data    表示使用backup用戶對192.168.0.99的data模塊備份
/data 備份文件保存的目錄
--password-file=/etc/rsync/server.pass 客戶機上存放密碼的文件


inotify可以監控文件系統中的添加、刪除、修改、移動等操作,觸發rsync來備份
下載inotify-tools:http://inotify-tools.sourceforge.net/
安裝inotify-tools

#tar zxvf inotify-tools-3.14.tar.gz
#cd inotify-tools-3.14
#./configure
#make && make install

在/usr/local/bin下有兩個命令inotifywait和inotifywatch
inotifywait用於等待文件或文件集上的一個特定事件,可以監控任何文件和目錄,也可遞歸監控整個目錄樹
inotifywatch用於收集被監控的文件系統統計數據,包括inotify事件發生多少次等信息

inotifywait的常用參數
    -m --monitor 表示保持事件始終監聽
    -r --recursive 表示遞歸查詢目錄
    -q --quiet 表示打印出監控事件
    -c --event 指定要監控的事件(modify,delete,create,attrib等)
    
編寫腳本來監控文件變化並完成同步
inotifyrsync.sh腳本

#!/bin/bash
#
HOST1=192.168.0.96
SRC=/data
DST1=data
user1=backup
/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e'
-e modify,delete,create,attrib $SRC \
| while read file
        do
        /usr/local/bin/rsync -vzrtopg --delete --progress --password-file=/etc/r
sync/server.pass $SRC $user1@$HOST1::$DST1 &> /dev/null
        done


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章