
我需要每小時將幾個日誌檔案傳輸到所有用戶都可以訪問的日誌儲存中,我使用rsync 來做到這一點,但是當日誌檔案輪換並自動壓縮時,問題就出現了,rsync 檢測到有一個新的日誌檔案檔案並且它也傳輸了它,這意味著在目標伺服器上我有:
example.log.2014-01-17--00
和
example.log.2014-01-17--00.gz
這是相同的日誌文件,但使用 gzip -9 壓縮。
這是我的 rsync 行,它包含在腳本中:
rsync -rvzt --include "*/" --include "$pattern" --exclude "*" $directory [email protected]:/home/user/directory/$subdir/$basefilename
它由 crontab 每小時執行一次,並傳輸與包含我要傳輸的路徑和模式的檔案中包含的 $pattern 和 $directory 相符的所有檔案。
所以我的問題是是否有我沒有見過的 rsync 選項,或者是否有可能做到這一點以及如何做到這一點。
提前致謝。
答案1
您是否考慮過使用 rsyslog 轉送 [1]?
另外,從 [2] 來看,添加應該--exclude '*.gz'
可以解決您的問題。你為什麼--exclude '*'
?我的理解是每個文件都被排除在同步之外。
[1]http://www.rsyslog.com/storing-and-forwarding-remote-messages/
[2]http://www.thegeekstuff.com/2011/01/rsync-exclude-files-and-folders/