2012-05-31 35 views
1

我有我創建做增量備份以下的rsync腳本:爲什麼我的rsync腳本每次都進行完整備份?

rsync -arv --exclude-from '/usr/bin/exclude-list.txt' --delete /Volumes/DOCS/ /Volumes/BKUP1/DOCS/ 
&& rsync -arv --delete /Volumes/Webserver/ /Volumes/BKUP1/Webserver/ 

我的排除列表是

/Volumes/Webserver/.Spotlight-V100 
/Volumes/Webserver/.Trashes 
/Volumes/Webserver/.fseventsd 

每次我運行此備份。儘管rsync應該是增量備份解決方案,但似乎每次都要複製和複製所有文件。

E.G.首先運行:

.... 
sites/website/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/js/.svn/prop-base/ 
sites/website/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/js/.svn/props/ 
sites/website/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/js/.svn/text-base/ 
.... 

第二輪:

.... 
sites/website/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/js/.svn/prop-base/ 
sites/website/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/js/.svn/props/ 
sites/website/sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/style/js/.svn/text-base/ 
.... 
etc... 

相同的文件再次複製跨越。另外我經常遇到以下權限被拒絕的錯誤,儘管他們在我的忽略excude,從參數:

building file list ... rsync: opendir "/Volumes/Webserver/.Spotlight-V100" failed: Permission denied (13) 
rsync: opendir "/Volumes/Webserver/.Trashes" failed: Permission denied (13) 
rsync: opendir "/Volumes/Webserver/.fseventsd" failed: Permission denied (13) 

任何想法?我希望我可以調整這個腳本,這樣它只會複製修改後的/新的文件,並向我展示這些文件在詳細輸出中。

非常感謝先進。

回答

2

我自己跑了。儘管聽起來很愚蠢,但我能想到的最好的結果是文件的時間戳沒有被保存。然後,當你再次做它認爲「嘿!這些時間戳不匹配 - 更好地同步'!如果使用-t選項,它將發送時間戳,然後這些文件將被視爲相同

或者您可以使用「僅限大小」選項,如果您確定沒有您修改過的文件,但大小相同。

0

您是否正在從不同格式的驅動器複製到FAT32驅動器?我的理解是,FAT32保留一個16位的時間戳,只允許約兩秒的分辨率,這比其他驅動器格式精確得多。默認情況下,rsync需要時間戳才能完全匹配,所以幾乎每個文件都會在此測試中失敗並被重新複製。

要解決這個問題,您需要讓rsync傳遞來自源的時間戳爲+/- 1秒(總共2秒)的文件。您可以通過向rsync命令添加

--modify-window=1 

相關問題