歡迎您光臨本站 註冊首頁

inotify rsync 問題請教

←手機掃碼閱讀     火星人 @ 2014-03-03 , reply:0

inotify rsync 問題請教

aaa目錄如果有文件變化則同步增加到ccc目錄
bbb目錄如果有文件變化則同步增加到ccc目錄

ccc目錄整個同步到另一台伺服器上

單獨運行rsync的三條命令  是正常的

將腳本在後台運行后  只有aaa目錄同步增加到ccc目錄是正常的  其餘兩個不正常  懷疑是while   done語句不對  請大神指點

#!/bin/bash

/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e close_write,delete,create,attrib /data/aaa | while read files
    do
        /usr/bin/rsync -vzrtopgu /data/aaa /data/ccc >/dev/null 2>&1
        echo "${files} was rsynced" >> /var/log/rsync.log 2>&1
done

/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e close_write,delete,create,attrib /data/bbb | while read files
    do
        /usr/bin/rsync -vzrtopgu /data/bbb/ /data/ccc/ >/dev/null 2>&1
        echo "${files} was rsynced" >> /var/log/rsync.log 2>&1
done

/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e close_write,delete,create,attrib /data/ccc | while read files
    do
        /usr/bin/rsync -vzrt --delete --port=5873 --password-file=/etc/rsync.pas /data/ccc rsyncuser@11.11.11.11::image
        echo "${files} was rsynced" >> /var/log/rsync.log 2>&1
done
《解決方案》

回復 1# ding_cw

shell腳本中是一行一行執行命令的,
inotifywait 的-m 參數是一直監視不退出, 就是說,這裡等於是個死循環, 腳本後面的代碼根本沒機會運行。
《解決方案》

回復 2# 關陰月飛


    那我應該怎樣才能實現同時監視3個文件夾的狀態呢   分別寫3個腳本還是使用別的參數?
《解決方案》

回復 3# ding_cw


可以將前面的兩個循環放到後台執行,不過最好是分開三個腳本,互不干涉。     

[火星人 ] inotify rsync 問題請教已經有520次圍觀

http://coctec.com/docs/service/show-post-165.html