2009-01-31 17 views
1

使用下面的rsync命令會讓你很多遠程文件複製到本地機器上,當遠程計算機使用rsyncd的:rsync的許多遠程文件掛指定

的rsync -R主機名::「模塊/路徑1 /文件1模塊/路徑2 /文件2模塊/路徑3 /文件3模塊/路徑4 /文件4'/本地/路徑

然而,如果文件數量太大,rsync掛起,而不是在目標位置創建文件。我測試的環境限制是22個。有22個文件在幾秒鐘內完成;有23個或更多的文件,它會無限期地掛起。

任何人都可以提供一個原因,爲什麼會發生這種情況?這裏有一些我已經檢查過的東西:

  • 這兩臺計算機都沒有用完磁盤空間或內存。
  • 所有的文件都可以傳輸,只要我一次不超過22個。 (換句話說,對位置23及以上的特定文件沒有特別的要求。)
  • 沒有權限問題;我有能力讀取遠程機器上的所有文件,並且可以寫入目標目標。 (另外,正如我在前面的項目中指出的,只要我一次不會超過22個,我整個列表中的所有〜50個文件都可以被轉移。)
  • 如果我使用 - n(空轉)選項。
+0

這是哪個操作系統? – 2009-01-31 13:07:12

回答

1

沒有解釋爲什麼你要指定單個文件。最簡單的方法是遞歸地同步rsync整個目錄,如果需要更多控制,則使用--include--exclude標誌以及要匹配的適當模式。

如果您的使用確實需要明確指定要備份的每個文件,請使用單獨的文本文件列出這些文件,並使用--files-from標誌調用rsync。我使用了--files-from選項。它運作良好。 rsync非常穩定 - 但許多配置選項會讓學習變得困惑。例如,有一個--cvs-exclude標誌可以從備份中排除所有元數據文件,不僅適用於CVS,也適用於SVN。非常有用,但絕對不容易發現。

所有這些選項都在rsync文檔here中詳細說明。

+0

我的用法確實需要指定隨機任意文件;沒有整個目錄被移動,或包含/排除的可用模式。但是 - 文件可能起作用;我會研究一下。 – dirtside 2009-01-31 04:30:32

0

strace客戶端和服務器,看看是誰造成的問題。它聞起來像在rsync中的某種錯誤。

1

好的,在進一步測試之後,它似乎與參數長度有關。我還沒有計算出確切的長度,但我嘗試了一組不同的25個文件,路徑/文件名較短,並且正常工作。所以我想我只需要限制命令的長度。屁股。 :\

-1

讓我們假設這是一個錯誤,而不是預期的行爲。

由於Rsync是一個開源項目。您可以下載源代碼,找到該錯誤併爲每個人上傳修復程序。你應該先檢查你是否使用最新版本。

+2

我無法修改相關環境中使用的rsync版本,也沒有時間(或技能)來修改rsync項目:) – dirtside 2009-01-31 04:28:07