rsync同步大文件问题的解决方法

7次阅读
没有评论

问题描述

使用Rsync Wrapper(1.9.8 rev.27版本)尝试从Linux设备到Android设备(Android 9系统)同步一个大约6GB大小的文件时,发现目标文件的实际大小远小于预期。已经使用了--append-verify选项以确保文件完整性,并且有时在重试过程中,文件大小依旧不对。
直接通过USB MTP协议使用rsync命令版本3.1.2也遇到了同样的问题,虽然日志显示整个文件都已传输完成,但结果文件仍仅占约1727886774字节。
文件管理器在尝试复制同样大小的文件时也会提前停止,并报告libmtp错误。

解决方案

一、检查Rsync Wrapper版本与配置

  1. 确认当前使用的rsync版本和MTP设置是否支持大文件传输及--append-verify选项。
  2. 考虑更新到最新版的rsync,并验证其兼容性和稳定性。

二、尝试其他同步工具或脚本

  1. 使用CURL命令:可以使用类似以下命令通过HTTP/FTP将大文件推送到Android设备上,确保完整文件传送。
    bash
    curl -T bigfile /path/to/upload --ftp-create-dirs -u username:password ftp://yourserver/
  2. 编写简单的脚本控制传输过程:使用rsync结合--partial-dir可创建临时存储部分完成的文件夹,有助于后续继续下载。
  3. 利用adb shell命令将文件推送到Android设备内部存储。
    bash
    adb push bigfile /sdcard/bigfile
  4. 借助远程服务:如SFTP/SCP等协议,通过建立服务器端SFTP服务,利用命令行工具或图形界面客户端进行大文件传输。

三、考虑分块传输与验证方法

  1. 对于极其重要的文件,在传输过程中可以采用分块方式多次上传以增加可靠性。
  2. 同步时先检查目标文件完整性(如果有旧的对应文件),使用哈希值比较确认是否一致后再进行更新,避免因中途断电等原因造成错误。

四、优化移动设备端设置

  1. 尽可能减少手机电池消耗,保持稳定连接性。
  2. 关闭不必要的应用程序和服务。
  3. 使用更稳定的网络环境以提高数据传输速率与稳定性。
  4. 核心提示:确保目标位置有足够的存储空间,并及时清除旧版本文件来腾出空间。

通过以上方法可以有效解决或至少大大缓解大容量文件同步过程中遇到的问题。结合设备与网络的实际情况,可能需要权衡多方面因素综合选择最合适的方法进行应对。希望此方案对你有所帮助!如有其他疑问欢迎继续交流讨论。

正文完