服务器内的大文件拷贝和普通文件下载不同,文件体积一大,传输时间变长,中断概率也随之增加。无论是从Linux服务器拉取数据库备份,还是把几十GB的镜像上传到测试环境,都需要考虑断点续传、速度限制、目录权限和完整性校验。没有合适的策略,很容易在传了半小时后因为一个网络抖动全部重来。

因此,本文将围绕几种主流传输工具和场景展开,给出可以直接使用的命令和操作路径,并整理常见问题,帮助你在实际工作中减少重复劳动。
一、常用大文件拷贝方式对比
服务器大文件拷贝并没有唯一标准答案,不同工具在断点续传、加密、易用性和速度上的侧重点不同。对于Linux主机之间的传输,SCP和rsync最常用;如果是Windows服务器,远程桌面本地资源映射或robocopy更贴近日常操作;跨地域、跨云厂商时,对象存储中转往往比直连更稳定。
下面这张表汇总了几种常见方式的差异,可以先根据场景定位自己更适合哪一种。
| 传输方式 | 是否支持断点续传 | 适用场景 | 特点 |
|---|---|---|---|
| SCP | 否 | 小文件、临时传输 | 命令简单,基于SSH加密 |
| rsync | 是 | 大文件、目录同步、增量备份 | 支持增量、进度显示、限速 |
| SFTP/FTP客户端 | 部分支持 | 图形化操作、不熟悉命令行 | FileZilla、WinSCP等工具 |
| Windows远程桌面映射 | 差 | Windows服务器临时拷贝 | 直接拖拽,依赖RDP带宽 |
| 对象存储/网盘中转 | 依赖平台 | 跨地域、大文件分发 | 可分段上传,稳定性好 |
从生产环境经验来看,几十GB以上的单个大文件优先考虑rsync,尤其是网络不稳定或需要多次同步的情况;如果只是偶尔传一次且网络稳定,SCP足够。
二、SCP与rsync的具体命令
在Linux或macOS终端中,SCP的使用门槛最低。基本格式为:
scp 用户名@服务器IP:/data/backup/2026.dump ./
如果需要指定SSH端口,使用 -P 参数,例如 scp -P 2222 root@192.168.1.10:/data/backup/2026.dump ./。若要拷贝整个目录,加上 -r;若想压缩传输,加上 -C;若担心占满带宽,可以用 -l 限制速度,单位是Kbit/s。不过SCP一旦中断,通常只能重新开始,所以大文件传输时并不理想。
rsync则弥补了这一不足。常用命令如下:
rsync -avP --partial root@192.168.1.10:/data/backup/2026.dump ./
其中 -a 表示归档模式,会保留权限和时间信息;-v 显示详细过程;-P 同时显示进度并支持断点续传;--partial 表示保留未传完的部分文件,下次启动可以继续。需要限速时可以加 --bwlimit=2048,表示限制为2048KB/s左右。
如果路径中包含空格,建议用双引号包住完整路径,或使用反斜杠转义空格。例如从 /data/my backup/ 目录拉取文件时,可以写成 /data/my\ backup/ 或使用引号,避免命令解析出错。
三、Windows服务器拷贝大文件的操作
Windows服务器和Linux服务器的操作习惯不同。最直接的方式是使用远程桌面连接时挂载本地磁盘。打开远程桌面连接,在“本地资源”选项卡中点击“详细信息”,勾选需要映射到服务器的本地磁盘。连接后,在服务器里打开“此电脑”,就能看到类似“C on 本地计算机”的驱动器,直接把本地文件复制进去,或把服务器文件复制出来。
这种方式的优点是无需额外安装软件,缺点是速度高度依赖远程桌面连接质量,而且大文件传输过程中如果远程桌面断开,复制任务可能中断。对于较大的文件,建议先压缩成单个包再复制,复制完成后在服务器上校验大小和哈希值。
如果服务器和本地电脑同属一个内网,也可以使用robocopy命令。它是Windows原生的可靠复制工具,支持断点续传和多线程。示例命令:
robocopy C:\ASR\logs D:\backup\logs /Z /MT:16 /LOG:D:\backup\copy.log
这里 C:\ASR\logs 和 D:\backup\logs 是示例路径,反斜杠必须保留,盘符后紧跟反斜杠。参数 /Z 表示可恢复模式,适合网络中断后续传;/MT:16 表示使用16个线程并行复制,大文件多时段能明显提速;/LOG 用于记录日志。robocopy还支持镜像目录,例如加 /MIR,但使用镜像参数要格外注意目标目录内容可能被同步删除。
四、传输中断、速度慢、校验失败等常见问题
传输中断是大文件拷贝中最常见的问题。如果使用rsync,中断后重新执行相同命令即可,未传完的部分会根据 --partial 继续处理,不会从头开始。如果是SCP中断,只能重新传,因此重要的大文件不建议使用SCP。一些图形化SFTP客户端也支持续传,例如FileZilla在上传同名文件时会提示“覆盖、续传、跳过”,选择续传即可。
速度慢的原因很多,常见包括带宽被占满、SSH加密开销、跨地域链路质量差、服务器磁盘IO瓶颈。可以用以下方式优化:传输前先压缩,例如对日志或文本类文件使用tar.gz;使用rsync的 --bwlimit 合理限速反而能减少拥塞;在安全允许的情况下,考虑内网传输而非公网;跨地域传输时,分段上传到对象存储再下载,通常比点对点直连更稳定。
校验失败则需要对比源文件和目标文件的哈希值。Linux下可以使用 md5sum 或 sha256sum 命令,Windows下可以使用 CertUtil -hashfile D:\backup\file.zip SHA256。如果哈希不一致,说明传输过程中出现了数据损坏,需要重新传输或使用rsync重新同步。
五、实际操作中的注意点
在执行大文件拷贝前,建议先确认源和目标磁盘空间是否充足,尤其是数据库备份文件通常会比预期更大。接着检查服务器安全组或防火墙是否放行对应端口,SCP和SFTP默认走22端口,如果修改过SSH端口,命令中需使用 -P 或 -p 指定。用rsync时如果目标服务器没有安装rsync,需要通过包管理器安装,例如 yum install rsync 或 apt install rsync。
对于耗时很长的任务,不要在本地终端直接跑,最好使用screen或tmux将会话放到后台,防止网络断开导致命令终止。例如在服务器端启动tmux,再执行传输命令,断开SSH后任务仍会继续。任务执行期间可以记录日志,方便事后排查。
最后,大文件拷贝完成后不要立刻删除源文件。先检查文件大小、哈希值,必要时做一次解压测试或恢复演练。尤其是备份文件,若源文件已经损坏,而目标文件也没验证,等到真正需要恢复时会非常被动。