Rsync透過ssh掛在從客戶端到LAN NAS伺服器的檔案上

Rsync透過ssh掛在從客戶端到LAN NAS伺服器的檔案上

我正在使用 rsync 透過 SSH 備份到本地網路上的 NAS。然而,當運行 rsync 時,我發現它卡在某些文件上。 Rsync 將完全凍結並拒絕傳輸任何進一步的檔案。然後,我必須強制執行 SIGKILL,這會導致整個 rsync 作業重新啟動,並卡在上次運行它時導致其掛起的同一個檔案上。

我嘗試過各種修復,但到目前為止沒有一個有效。我最初認為它的發生是因為我的本機系統(帶有 OS Extended FS 的 OS X 10.11.3 和運行 Ubuntu Linux 14.04.1 且帶有 ext4 驅動器用於備份的 NAS)之間存在一些非法字元問題。我注意到,當 rsync 卡在它通常擁有的檔案上時,檔案名稱或路徑通常有 9/10 次包含“&”。

lsof然而,在觀察伺服器上的rsync 進程後,htop看起來 rsync(大多數情況下但不是全部)在客戶端的 rsync 檔案掛起的同一點崩潰。我注意到,即使 rsync 在客戶端掛起,我仍然會看到輸出顯示lsof正在存取伺服器端的檔案。

這是我正在使用的 rsync 命令。

/usr/bin/rsync --bwlimit=1000 --verbose --rsync-path="sudo rsync" --archive --recursive --numeric-ids --human-readable --partial --progress --relative --itemize-changes --stats --files-from=/Users/user/Dropbox/Flex/Scripts/mac/rysnc-backup-to-cp/config/backup_files --exclude-from=/Users/user/Dropbox/Flex/Scripts/mac/rysnc-backup-to-cp/config/exclude -e "ssh -q -p 22 -i /Users/enwhat/.ssh/user" / [email protected]:/media/Backup/_Backup/Machine/

rsync 通常會卡住的範例:

<f+++++++ Volumes/Data/Users/user1/Pictures/2013_12_iPhone_Archive/IMG_6993.m4v 17.33M 63% 994.25kB/s 0:00:10

或者

<f+++++++ Volumes/Data/Users/user1/Documents/docs/Work/_Sort from USB backup drive/Drive/JOB/CD Album/AAA1834__Album&flyer_15_Years/2-Design/1-D-Visuals/stage 05/AAA_album_12_c.psd 96.40M 50% 1.55MB/s 0:01:00

我嘗試過--verbose --rsync-path="sudo rsync” --delete-during單獨刪除所有內容。當我刪除這些參數標誌時,rsync 進程將到達給定的文件,然後掛起。

這裡是否還有其他原因,或者檔案名稱中的非法字元很可能導致 FS 類型之間出現問題?

我確實認為在伺服器上運行的 Crashplan 可能消耗了太多資源並導致 rsync 崩潰。但是,當我停止伺服器上的 CrashPlan 服務時,資源確實釋放了,但 rsync 仍然在同一檔案上崩潰。這是一個旁注,超出了問題的範圍,但我確實想知道我是否應該放棄 Crashplan 並改用 Amazon Glacier 作為備份服務,因為 Crashplan 會佔用大量 CPU 和記憶體。

答案1

我不知道為什麼 rsync 可能會掛起。您可以嘗試在該目錄樹上執行常規副本,並查看是否有某種 I/O 錯誤。運行檔案系統檢查並不是一個壞主意。

至於亞馬遜冰川,是的,你可以使用它。 Duplicity 支援 S3 作為備份目標,S3 的生命週期規則可讓您自動將檔案移至 Glacier(透過 S3 Web 控制台設定)。您需要將簽名和清單文件保留在 S3 中(否則口是心非將無法檢索它們),但只有在您需要提取備份文件時才需要卷文件,以便它們可以安全地儲存在 Glacier 中。生命週期規則需要一個已知的前綴,這不是口是心非的預設行為,因此請務必檢查參數設定。

相關內容