我正在尝试在两台 unix 机器之间传输一个大(~3GB)文件。
我可以使用 scp 或 rsync,但有时传输已损坏。(我必须手动检查。)我可以将文件分成几部分并传输它们,然后校验和然后重新组合,但这很乏味。
是否有一个命令可以在两台 Unix 机器之间正确传输大文件?我希望它自动对两个副本进行校验和,并继续重做传输(或其部分),直到它正确地通过线路获取所有字节。
Rsync 的工作原理是将文件分成多个块,并且仅在它们不同时才传输这些块。就其本质而言,它应该能够检测和修复损坏。您是否尝试过使用 --partial 选项,如果它被中断,它将让它继续,并重复重新运行该命令直到它不再传输任何数据?
您是否在连接的远程端使用 rsync 服务器?如果没有,那么您实际上并没有使用 rsync 来传输文件,它只是使用了您正在使用的任何底层传输方法,因此您不会进行错误检测。
小智 6
在 rsync 中使用 -c 选项(校验和)。
rsync -azcvPh file1 user@remotehost:/tmp/
Run Code Online (Sandbox Code Playgroud)
-P 选项显示进度统计信息,将帮助您了解文件传输中断的位置/时间。-h 使其“人类可读”,而 -z 压缩。