两台电脑之间快速传输大量文件的方法,系统均是linux

怎甘沉沦 提交于 2020-12-18 18:22:52

背景

本人平时的工作有一部分是编译Android系统,Android官方推荐的内存配置是16G,旧电脑的内存是16G,完整编译一次LineageOS 14.1(对应的Android版本是7.1.1),大概需要两个小时左右,编译LineageOS 17.1(对应的Android版本是10),大概需要4个小时,而且编译途中,还不能干别的事,否则会导致资源紧张而编译失败,因此需要升级一下硬件配置。

环境

  1. 硬件,由ThinkPad T580 升级到 外星人Area 51M顶配版。
  2. 系统,两个都是ArchLinux。
  3. 文件总大小有600G左右。

文件复制的过程

  1. 在旧电脑安装了Nginx,准备用Nginx作为服务器,新电脑使用Http从旧电脑下载文件,达到迁移文件的目的,这个速度只有5M左右,原因可能是两台电脑都使用内网WIFI,而路由器i的内网转发限制到了很低,应该是5M,这个方案放弃。
  2. 在旧电脑安装vsftpd,新电脑使用ftp下载文件,但是这个方案的速度也是只有5M,原因同上,放弃。
  3. 使用网线将两台电脑直连(网线是6类,水晶头是超5类),旧电脑设置ip相关参数,ip地址: 192.168.1.1,子网掩码: 255.255.255.0,网关: 192.168.1.1,新电脑ip地址: 192.168.1.2,子网掩码和网关同旧电脑一致,然后使用rsync从旧电脑给新电脑同步数据,速度很稳定,基本上一直是11.15Mb/s,速度还是不理想,网卡的协商速率是100Mb/s,按道理速度应该可以跑满,不知道为什么只有11.15Mb/s。先放弃此方案。
  4. 使用移动硬盘来回复制,移动硬盘的usb接口是3.1的,速度很快,使用rsync,基本上在90Mb/s左右,比起网线直连的速度,快了不少,虽然需要复制两次,比网线直连多了一次,但这也相当于网线直连的45Mb/s,因此选用了此方案

最后总结技术

  1. 对于有大量小文件的,先使用tar或zip进行打包或压缩成一个文件,这样可以加快复制速度
  2. 使用rsync,而不是很cp命令,个人更喜欢rsync的多参数,可以显示复制的进度

以上是本人的这次技术总结,如果朋友还有更快更好的方案,一起讨论~

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!