linux怎么在两台服务器之间传文件夹,有哪些方法

在Linux服务器间传输文件夹,最常用的命令是scp和rsync,其中rsync支持增量同步和断点续传,更适合大文件夹和频繁同步的场景。

Linux服务器间传文件夹,这些命令你必须掌握

无论你是运维新手还是老手,在两台Linux服务器之间搬运数据都是家常便饭,传文件夹看似简单,但选错方法可能让你等得心焦,甚至丢数据,下面我直接上干货,把主流方案摊开讲清楚。

我修复了Linux没有msconfig的bug
加载中
我修复了Linux没有msconfig的bug

scp:零学习成本的基础方案

scp(Secure Copy)基于SSH加密传输,语法和cp几乎一样,适合快速传小文件或一次性任务。

scp -r /本地文件夹 用户名@远程IP:/目标路径
  • -r 参数递归拷贝整个目录。
  • 默认端口22,如果SSH端口换了,用 -P 端口号。
  • 缺点:单线程传输,大文件慢;不支持断点续传;无法增量更新。

适用场景:临时传个几百MB的小包,或者对方服务器只有scp可用。

rsync:增量同步与断点续传的首选

rsync是Linux下最强大的文件同步工具,没有之一,它只传输变化的部分,网络中断后可以续传,还能压缩数据、限制带宽。

rsync -avz /本地文件夹 用户名@远程IP:/目标路径
  • -a 归档模式,保留权限、时间戳等属性。
  • -v 显示进度。
  • -z 传输时压缩,节约带宽。
  • -P 保留部分传输的文件,实现断点续传,同时显示进度。
  • 首次传输和scp一样慢,但后续同步飞起。

适用场景:每天定时同步网站目录、备份数据库文件、迁移几十GB以上的数据。

tar配合ssh:打包传输的另一种思路

当文件夹里小文件特别多(比如PHP项目),直接用scp或rsync可能因为大量丢包而变慢,此时可以先用tar打包,再通过管道发送到远程解压。

tar czf - /本地文件夹 | ssh 用户名@远程IP "tar xzf - -C /目标路径"
  • linux怎么在两台服务器之间传文件夹,有哪些方法

    流式打包,不占用本地磁盘。

  • 压缩率可调,-z 是gzip,想更快换 -j(bzip2)或 -J(xz)。
  • 适合文件数量上万、单个文件体积小的场景。

使用nc快速传输(不加密)

如果你在局域网内传文件,且不担心被监听,nc(netcat)是速度最快的方案,它没有加密开销,理论能跑满带宽。

接收端先开监听:

nc -l 端口号 | tar xzf -

发送端传输:

tar czf - /本地文件夹 | nc 接收端IP 端口号

注意:nc没有加密,千万别在公网用,另外要确保防火墙放行对应端口。

scp和rsync哪个更适合你的场景

很多人在第一次选工具时都会纠结,我直接告诉你,多数情况下rsync优于scp,但也不是绝对。

传输速度对比

  • 单次传输大文件:scp早期版本可能略快,但现代rsync启用压缩后差距不大,如果文件已存在,rsync只传增量,速度碾压。
  • 大量小文件:rsync比scp稳定,因为scp单线程容易丢包,而rsync通过分块校验可以应对。
  • 网络不稳定:rsync支持断点续传,scp断了只能重来。

安全性对比

两者都基于SSH隧道,加密强度相同,但如果你用nc传,那就不加密了。安全第一的原则下,内网用nc,公网必须用scp或rsync。

断点续传与增量传输

这是rsync的核心优势。--partial 参数让rsync保留已传部分,下次继续,scp没有这个能力,对于定时同步任务,比如每天凌晨备份,rsync结合cron是实现linux跨服务器同步文件夹命令的最佳实践。

Linux服务器之间快速传输大量文件的实用技巧

当你面对几十GB甚至上百GB的文件夹时,光靠基础命令不够,得用点巧劲。

压缩传输的最佳实践

网络带宽通常是瓶颈,压缩能减少传输量,但会消耗CPU,需要平衡。

  • 使用rsync的 -z 参数,它会自动压缩,但不一定会压缩整个文件,只是分块。
  • linux怎么在两台服务器之间传文件夹,有哪些方法

  • 手动压缩再传:tar打包后,用scp或rsync传压缩包,这样压缩率更高,但需要额外磁盘空间和打包时间。

建议: CPU不强且网络带宽充足,不压缩;CPU够强、网络慢,用 -z 或 -J 高压缩比。

限制带宽,避免影响其他服务

共享带宽的服务器上,传文件可能把带宽占满,导致业务响应慢,rsync允许你限速。

rsync -avz --bwlimit=10M /本地文件夹 用户名@远程IP:/目标路径

--bwlimit 单位是KB/s,例子中 10M 代表10MB/s,根据你的带宽合理设置。

使用nohup或screen后台传输

传大文件通常要等很久,如果SSH连接断开,任务就中断了,用nohup把命令丢到后台。

nohup rsync -avz /本地文件夹 用户名@远程IP:/目标路径 > rsync.log 2>&1 &

或者用screen/tmux,它们更灵活,可以随时连回来查看进度,这是解决linux服务器传输文件夹速度慢问题的常见配套方案,因为你可以让传输在后台跑,不影响你继续敲命令。

多线程加速(快速传输大量文件)

scp和rsync默认单线程,如果你有多个文件,可以并行传输。

  • 使用 xargs 或 parallel 拆分文件列表,同时跑多个rsync进程。
  • 或者直接用 fpsync(包含在Fpart工具集里),它能将文件列表分片并用多进程同步。

注意:并行会消耗更多CPU和网络带宽,不要盲目开太多线程,通常2-4个就够。

传输后如何验证文件夹完整性

文件传完不等于万事大吉,尤其是重要数据,必须确认没有丢包或损坏。

使用md5sum或sha256sum

先在本机计算所有文件的校验和清单,再在远程机器上计算一遍,比对结果。

# 本地生成校验文件
find /本地文件夹 -type f -exec md5sum {} ; > local.md5
# 把校验文件传到远程
scp local.md5 用户名@远程IP:/目标路径
# 远程执行校验
md5sum -c local.md5

linux怎么在两台服务器之间传文件夹,有哪些方法

如果输出全是 OK,说明文件完整,这个过程比较耗时,但可靠。

使用rsync自带的校验

rsync传输时默认使用弱校验(快速),可以用 --checksum 强制要求文件校验和,但这样会大幅降低速度,因为要读取整个文件。通常不推荐开启,除非数据敏感度极高。

更实用的做法是:传输完成后,用 rsync -avc --delete 再跑一次空同步,如果没有任何输出,说明文件已一致。

Linux传文件夹常见问题解答

问:scp和rsync可以同时使用吗?

这两个命令完全独立,但一般不需要同时用,如果你喜欢scp的简单,又想要断点续传,可以试试 rsync -e ssh,它强制rsync使用SSH作为传输通道,行为和scp类似但多出rsync的特性,rsync默认就是走SSH,所以日常用rsync就够了。

问:为什么rsync传输速度比我想象中慢?

多数情况下是因为网络延迟或小文件过多,检查一下是否开启了压缩,如果CPU压力不大,加上 -z。--progress 参数会频繁打印进度,也会消耗CPU,可以去掉,如果文件数量超过10万,建议先用 tar 打包再传,避免rsync建文件列表时卡住。

问:如何实现两台服务器之间的定时同步文件夹?

在源服务器上编辑crontab,添加一条rsync命令,例如每天凌晨2点同步:

0 2    /usr/bin/rsync -avz --delete /本地文件夹 用户名@远程IP:/目标路径 >> /var/log/rsync.log 2>&1

--delete 参数会让远程删除本地没有的文件,达到完全镜像,注意第一次手动跑一下,确保权限和路径正确。

传文件夹没有银弹,小文件用scp,大文件或同步用rsync,局域网内图快用nc,文件多且小就打包再传,记住把安全放在首位,公网传输一定要加密,内网可以适当牺牲加密换速度,选择最适合你网络环境和文件特征的方案,比盲目套用命令更高效。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://test.idctop.com/article/585028.html

赞 (0)
如何为代理服务器安装配置nginx,常见问题有哪些?
上一篇 2026年8月20日 05:04
云服务器IP账号密码忘了怎么办?,怎么找回密码
下一篇 2026年8月20日 05:05

相关推荐

  • dnf登陆网络服务器失败怎么办?,是什么原因

    解决DNF登陆网络服务器失败,核心在于区分是本地网络故障、游戏客户端异常还是官方服务器波动,多数情况下通过重启路由器、修复网络组件或更换节点即可恢复,dnf登录网络连接失败怎么解决?本地网络排查三步走遇到登录失败时,先别急着点重试,你的网络环境可能才是真正元凶,这类问题在相当一部分玩家中都能通过自查解决,并不需……

    2026年8月2日
    1300
  • 服务器1g多少钱?1G云服务器一年价格贵不贵

    服务器1G内存配置的价格通常在每月50元至200元人民币之间,年付价格则在500元至2000元人民币左右,具体费用取决于服务商品牌、线路质量、带宽大小以及硬盘类型等核心因素,对于绝大多数初创项目和个人开发者而言,1G内存服务器是入门级建站的高性价比首选,既能满足基本的Web服务需求,又能将成本控制在极低水平,核……

    2026年4月10日
    8400
  • JMeter服务器性能测试方案如何制定,有哪些关键步骤?

    JMeter服务器性能测试方案的核心在于通过模拟真实用户负载,系统性地评估服务器响应能力与稳定性,并依据测试结果进行调优, 一个完整的方案需要覆盖需求分析、脚本设计、场景执行、监控分析与优化闭环,才能真正发挥压力测试的价值,jmeter服务器性能测试怎么做测试方案设计的关键步骤明确测试目标是起点,先搞清楚要测的……

    2026年7月31日
    700
  • ASP.NET反推怎么做?掌握反推技术步骤详解

    ASP.NET 反推(通常指数据库逆向工程,Database Reverse Engineering)是利用 Entity Framework Core (EF Core) 的 Scaffold-DbContext 工具命令,根据现有关系型数据库的结构(表、视图、列、关系、约束等),自动生成对应的 C# 实体类……

    2026年2月11日
    13900
  • 底盘开发工程师是做什么的?底盘开发工程师薪资待遇好吗

    底盘开发工程师是汽车研发体系中决定车辆动态性能、行驶质感与安全底线的核心角色,其工作成果直接定义了整车的操控极限与驾乘舒适度,是连接动力总成与车身结构的关键纽带,在现代汽车产业向电动化、智能化转型的背景下,该岗位的技术门槛不降反升,要求从业者具备从传统机械设计到电子控制系统开发的跨学科综合能力,核心职能与价值定……

    2026年4月8日
    7600
  • ReCloud美国VPS三网延迟172ms稳定吗?美国vps推荐便宜好用

    ReCloud美国9929优化线路VPS凭借1C1G10G配置与三网低延迟表现,是预算有限但追求稳定连接的小白用户和轻量级建站者的性价比首选,在服务器租赁市场,”便宜”往往伴随着”不稳定”的刻板印象,但ReCloud的这款9929优化线路产品正在打破这一认知,它并非那种为了走量而牺牲质量的低端货,而是针对特定网……

    2026年7月4日
    8900
  • ASP.NET中tr行不显示如何解决?GridView控件表格问题排查指南

    在ASP.NET中,<tr> 元素代表HTML表格中的一行(Table Row),虽然它本质上是标准的HTML标签,但在ASP.NET Web Forms和ASP.NET Core MVC/Razor Pages的开发范式下,其使用方式、数据绑定以及与服务器端逻辑的集成赋予了它特定的价值和实践模式……

    2026年2月10日
    10730
  • ajax如何查询mysql数据库?ajax异步请求mysql数据库实例

    AJAX查询MySQL数据库的核心在于利用JavaScript的XMLHttpRequest或Fetch API异步发送请求,配合后端PHP/Node.js脚本执行SQL语句并返回JSON数据,从而实现页面局部刷新而不重载整个网页,这种技术组合是现代Web开发的基石,它解决了传统表单提交导致的页面闪烁问题,让用……

    2026年6月2日
    5300
  • 服务器linux系统配置ip,linux服务器怎么配置静态ip地址

    在服务器运维管理中,IP地址的正确配置是保障网络通信顺畅的基石,核心结论在于:根据应用场景选择正确的配置工具(nmcli或ip命令)并精确设置子网掩码、网关及DNS,是Linux服务器网络高可用的关键,Linux系统配置IP地址主要分为临时配置与永久配置两种模式,生产环境强烈建议采用永久配置,以确保服务器重启后……

    2026年3月28日
    8200
  • ajax存储过程编程怎么实现?ajax调用存储过程实例

    AJAX结合存储过程编程的核心在于利用异步请求在前端与数据库之间建立高效通道,通过预编译的存储过程提升数据交互安全性与执行效率,这是构建高并发Web应用的最佳实践,在传统Web开发中,页面刷新是常态,用户等待反馈的时间往往被拉长,引入AJAX(Asynchronous JavaScript and XML)后……

    2026年6月3日
    2900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注