Linux
如何通過網路複製大數據?
我有一個帶有 Centos 7 的 HP Microserver gen 8,並且在托架區域中只有一個硬碟,2 TB,安裝為 NTFS。
我正在嘗試通過網路從本地複製文件(一次大約 100GB)。
我嘗試過以下方法:
- 通過
Samba
- 通過
SCP
- 通過
Rsync
此方法的常見問題通常與此錯誤消息有關:
- 系統是只讀的,出現 I\O 錯誤(我已經更換了硬碟,因為它更有可能導致此問題,但不確定)
- 磁碟已滿(剛剛看到,我正在使用
Samba
),磁碟 92% 為空。- 不允許 mkstemp 操作失敗
所以我在想也許有更好的方法來複製大數據;有沒有?
另外,我只是嘗試這樣做:
rsync -rvz -e "ssh" * abude@192.168.0.106:/folder
我得到了這個錯誤:
rsync: writefd_unbuffered failed to write 16385 bytes [sender]: Broken pipe (32) rsync: write failed on "/folder/movie.mkv": Input/output error (5) rsync error: error in file IO (code 11) at receiver.c(322) [receiver=3.0.9] rsync: connection unexpectedly closed (490 bytes received so far) [sender] rsync error: error in rsync protocol data stream (code 12) at /BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-47/rsync/io.c(453) [sender=2.6.9]
洪流答案不是複制這麼多數據的唯一有效方法;我需要一個基於 Linux 的解決方案,沒有 torrent。
–
更新:
在@zeppelin 建議嘗試一個大文件而不是許多 4-5GB 文件之後,我使用以下方法製作了一個大檔案:
tar -zcvf movies.tar.gz *
一旦我有了檔案:
ls -alh movies.tar.gz -rw-r--r-- 1 Abude staff 77G Nov 11 13:54 movies.tar.gz
我做了
rsync
並得到了以下問題:rsync -avz -e 'ssh' --progress movies.tar.gz abude@192.168.0.106:/nas/media /etc/profile.d/lang.sh: line 19: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory building file list ... 1 file to consider movies.tar.gz 82671089587 100% 25.36MB/s 0:51:49 (xfer#1, to-check=0/1) rsync: mkstemp "/nas/media/.movies.tar.gz.ezRUOM" failed: Operation not permitted (1) sent 82698841857 bytes received 42 bytes 26586993.06 bytes/sec total size is 82671089587 speedup is 1.00 rsync error: some files could not be transferred (code 23) at /BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-47/rsync/main.c(992) [sender=2.6.9]
要複製大量數據,從主觀上講,私人種子可能是最佳選擇之一。
不過,這不是製作洪流教程的地方。
例如,您可以查看此處或查找以下內容:
如何創建私人種子
rsync
是最好的解決方案。我建議您刪除-z
以便跳過壓縮。壓縮可能會為臨時壓縮文件佔用額外的磁碟空間。所以你應該使用:
rsync -av -e "ssh" * abude@192.168.0.106:/folder