2017-04-12 18 views
0

我有一個作爲媒體服務器運行的Raspberry PI,我的其他設備rsync到各種目錄。我有在早上5點來檢查新文件並運行Rsync命令大型存檔目錄已更改

rsync --stats -P -ahuvz ~/EXT -e "ssh -v" [email protected]:~/Vault/PI 

我跑進我在那裏試圖進行rsync太多的EXT目錄,所以我去了一個問題,重組所有的每一天跑一個偉大的劇本我文件將一堆移動到NoSync目錄並將EXT目錄分割爲多個部分。

我的問題是:現在它想在dest目錄上創建重複文件,而不是識別它們是剛移動到新目錄的相同文件(例如EXT/BookA - > EXT/Books/BookA)。我經歷了rsync手冊頁,但沒有看到任何標誌可以解決我的問題 - 有沒有人有一個優雅的解決方案,除了手動複製dest上的更改?

回答

0

最簡單的選擇是使用Unison,這在檢測文件移動和重命名方面比rsync好得多。

這可能是這麼簡單:

%unison -batch ~/EXT ssh://[email protected]//home/user/Vault/PI 

但要小心,unison是一個雙向同步工具和-batch將自動解決所有你的衝突。

如果您的計算機時鐘同步並且文件修改時間戳可以正常運行,那麼通常情況下,該方法就可以很好地工作。

如果不確定,只需省略-batch(或將其替換爲-auto),它會提示您解決衝突。

-auto自動接受默認值(不衝突)的行動

-batch批處理模式:問任何問題都


也有基於硬鏈接技術,檢測動作並用 rsync重命名: https://lincolnloop.com/blog/detecting-file-moves-renames-rsync/

但是在內容重新組織之前,它需要一些初步步驟。

+0

顯然這個選項是不行的bc unison需要精確的版本匹配,PI版本是2.40,而Ubuntu是2.48 - 我原以爲將版本更改爲2.40很簡單,但顯然它們不匹配因爲操作系統不匹配。 – Poncher