linux怎么从另一个服务器拷贝文件夹?,有哪些方法

从另一个服务器拷贝文件夹,Linux下最常用也最可靠的方式是 scp -r,想要断点续传或增量同步就用 rsync -avz。 这两个命令覆盖了绝大多数场景,一个简单直接,一个功能强大,下面我把我日常处理服务器迁移、备份时实际用到的操作细节全部拆开讲,照着复制就能用。

linux服务器之间拷贝文件命令详解

先明确一个基础认知:Linux服务器之间传文件,本质上就是走 SSH 通道,无论是 scp 还是 rsync,底层都依赖 SSH 协议,这意味着你只要搞定了 SSH 登录,拷贝文件夹就是顺手的事。

linux之间的文件拷贝
加载中
linux之间的文件拷贝

拷贝前的三个准备工作

动手之前,先确认三件事,能帮你避开 80% 的坑:

  • 目标服务器的 IP 地址或域名。168.1.100 或 backup.example.com。
  • 登录账号和端口,默认端口是 22,如果改过端口,比如改成了 2222,命令里必须显式加 -P 2222(注意 scp 用的是大写 P,ssh 用小写 p,这个细节坑过不少人)。
  • SSH 免密登录是否已配置,没配置的话,每次拷贝都要输密码;配置了则脚本化操作更顺手。

行业共识认为,给服务器配置 SSH 密钥登录是提升效率的第一步,生成密钥很简单:

ssh-keygen -t rsa -b 4096

一路回车,然后把你本机的公钥推送到目标服务器:

ssh-copy-id -p 端口号 用户名@服务器IP

之后再用 scp 或 rsync,就不用反复输密码了。

scp命令的完整实操

scp 是 Secure Copy 的缩写,用法跟 cp 很像,只是路径变成了 用户名@主机:路径 的格式。

从远程服务器拉取文件夹到本地

比如我想把 168.1.100 上 /var/www/html 整个目录下载到当前机器的 /home/user/backup 下:

scp -r root@192.168.1.100:/var/www/html /home/user/backup
  • -r 参数表示递归复制整个目录,不加会报错。
  • 如果目标服务器 SSH 端口不是默认的 22,用 -P 指定:
scp -P 2222 -r root@192.168.1.100:/var/www/html /home/user/backup

将本地文件夹推送到远程服务器

反向操作,把本地的 ./build 目录推送到远程服务器的 /opt/www:

scp -r ./build root@192.168.1.100:/opt/www

注意:如果远程目录 /opt/www 已经存在,scp

linux怎么从另一个服务器拷贝文件夹?,有哪些方法

会把 build 文件夹放进 /opt/www 里面,变成 /opt/www/build直接合并到 /opt/www 下,需要自己先处理目录层级,这是 scp 不如 rsync 方便的地方。

保留文件属性

拷贝网站源码或配置文件时,文件权限和时间戳很重要,加上 -p 可以保留这些属性:

scp -rp root@192.168.1.100:/etc/nginx /home/user/nginx-backup

scp的局限在哪里

scp 简单归简单,但有两个明显的短板:

  • 不支持断点续传,传了一半网络断了,重新来过,大文件时非常痛苦。
  • 不做增量同步,每次都是全量复制,哪怕远程文件夹只改了一个 1KB 的小文件,也要把整个目录重新传一遍。

当文件夹体积较大(比如超过 1GB)或者需要频繁同步时,业界主流做法是改用 rsync。

linux跨服务器复制目录的rsync方案

rsync 是 Linux 服务器之间做文件同步的瑞士军刀,它厉害的地方在于增量传输只传送源目录和目标目录之间有差异的部分,节省时间也节省带宽。

rsync基础命令

把刚才 scp 的第一个场景用 rsync 重写一遍:

rsync -avz -e ssh root@192.168.1.100:/var/www/html /home/user/backup

参数拆解:

  • -a 归档模式,表示递归复制并保留权限、时间戳、软链接等属性。
  • -v 显示详细输出,方便观察进度。
  • -z 传输时压缩,对文本类文件(代码、配置文件)效果拔群。
  • -e ssh 指定使用 SSH 作为传输通道,这是跨服务器拷贝的标准姿势。

rsync的断点续传与增量同步

这是 rsync 碾压 scp 的核心技能,传输中断后,重新执行同一条命令,它会自动跳过已传完的部分,只传剩余数据:

rsync -avzP -e ssh root@192.168.1.100:/var/www/html /home/user/backup

-P 等价于 --partial --progress,--partial 表示保留部分传输的文件,--progress 显示实时进度百分比。

场景实操:网站日志同步

假设我有两台服务器,A 是 Web 服务器,B 是日志分析服务器,每天凌晨把 A 上的日志同步到 B:

rsync -avz -e ssh --remove-source-files root@A服务器IP:/var/log/nginx/ /data/logs/nginx/

--remove-source-files 表示传输成功后删除源端的文件,避免 A 服务器磁盘被日志撑爆,这个操作非常适合

linux怎么从另一个服务器拷贝文件夹?,有哪些方法

日志集中管理的场景。

权限保留与特殊文件处理

网站迁移时,文件属主和权限错乱是常见问题。rsync 的 -a 参数已经包含了权限保留,但如果你需要明确指定属主和属组,可以加:

rsync -avz --chown=www:www -e ssh root@192.168.1.100:/var/www/html /home/user/backup

--chown=www:www 把拷贝过来的文件属主强制设为 www 用户、www 组,这在部署 PHP 或 Node.js 项目时特别实用,能避免权限不足导致的 500 错误。

只排除不想要的目录

拷贝整个站点时,node_modules、runtime 这类体积大又没用的目录应该跳过,用 --exclude 参数:

rsync -avz -e ssh --exclude='node_modules' --exclude='.git' --exclude='runtime' root@192.168.1.100:/var/www/html /home/user/backup

多个排除项可以重复使用 --exclude,也可以写进一个文件里管理:

rsync -avz -e ssh --exclude-from=/home/user/exclude-list.txt root@192.168.1.100:/var/www/html /home/user/backup

exclude-list.txt 每行写一个目录名,

node_modules
.git
runtime
.log

scp与rsync怎么选:linux服务器之间传文件哪个快

很多新手纠结这个问题,明确一个结论:数据传输速度本身差别不大,真正的差距在传输策略。

对比项 scp rsync
首次全量传输 速度相当 速度相当
增量传输 不支持 支持,只传差异部分
断点续传 不支持 支持(--partial)
权限保留 需 -p 参数 -a 参数默认保留
压缩传输 需 -C 参数 -z 参数更灵活
排除目录 不支持 --exclude 支持
适用场景 小文件夹、一次性拷贝 大目录、持续同步、迁移

什么时候用 scp:

  • 文件夹很小(几百 MB 以内),一次性操作。
  • 不想记太多参数,命令行越短越好。
  • 目标机器 SSH 版本较老,rsync 可能没装。

什么时候用 rsync:

  • 文件夹超过 1GB,网络不稳定。
  • 需要定期同步(配合 cron 定时任务)。
  • 迁移网站、数据库文件目录,需要保留权限。
  • linux怎么从另一个服务器拷贝文件夹?,有哪些方法

  • 服务器之间传文件哪个快这个问题,增量场景下 rsync 明显更快,因为传的数据量小。

我给客户做服务器迁移时,默认方案就是 rsync -avzP,稳且可控,如果客户要求最简单省事,一次性的小目录才用 scp。

定时同步的配置思路

如果你需要每天凌晨自动同步,把 rsync 命令写进脚本,配合 crontab 即可:

crontab -e

加入一行(每天凌晨 2 点执行):

0 2    /usr/bin/rsync -avzP -e ssh root@192.168.1.100:/var/www/html /home/user/backup >> /var/log/rsync-backup.log 2>&1

业内专家指出,定时增量同步是服务器备份最省钱的方案,比任何云厂商的块存储快照都灵活。

跨服务器拷贝时遇到密码问题的处理

如果不想配置 SSH 免密,也可以考虑用 sshpass 在命令中直接指定密码,但安全性较差,不推荐在生产环境使用,从安全角度考虑,建议按以下优先级选择:

  1. SSH 密钥认证(推荐)。
  2. 使用 ssh-agent 管理密钥。
  3. 仅在受信任的内网环境使用 sshpass。

配置密钥时注意文件权限,~/.ssh 目录权限应为 700,authorized_keys 文件权限应为 600,否则 SSH 服务会拒绝使用密钥登录。

常见疑问解答

拷贝文件夹时遇到权限不足怎么办

scp 或 rsync 报 Permission denied,多数情况是目标目录的写权限不够,先确认当前登录用户对目标目录是否有写权限,或者直接切换到 root 用户执行:

sudo scp -r root@192.168.1.100:/var/www/html /home/user/backup

如果目标目录属于其他用户,可以先用 chown 调整属主。

传输中断后必须从头开始吗

scp 必须从头开始,因为协议不支持断点续传。rsync 加 -P 参数后,重新执行原命令即可从断点继续,已完成的部分不会重复传输,所以大文件传输建议一律使用 rsync。

如何确认拷贝后的文件完整性

rsync 传输完成后,可以对比源目录和目标目录的校验值:

diff -r root@192.168.1.100:/var/www/html /home/user/backup

或者用 rsync 自带的 -c 参数强制校验文件内容:

rsync -avzc -e ssh root@192.168.1.100:/var/www/html /home/user/backup

-c 会逐文件计算校验值,确保内容一致,代价是速度稍慢。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/linux%e6%80%8e%e4%b9%88%e4%bb%8e%e5%8f%a6%e4%b8%80%e4%b8%aa%e6%9c%8d%e5%8a%a1%e5%99%a8%e6%8b%b7%e8%b4%9d%e6%96%87%e4%bb%b6%e5%a4%b9%ef%bc%9f%ef%bc%8c%e6%9c%89%e5%93%aa%e4%ba%9b%e6%96%b9%e6%b3%95/

赞 (0)
勤哲Excel服务器需要什么编程语言?,需要学什么?
上一篇 2026年8月8日 03:03
DNF登不上一直连接服务器失败怎么办,怎么回事
下一篇 2026年8月8日 03:12

相关推荐

  • AI批量存储为web格式怎么做,AI如何批量生成网页

    生产与网站建设的深度融合背景下,实现ai批量存储为web格式已成为提升信息发布效率、降低运营成本的核心策略,通过自动化技术将AI生成的内容转化为结构化的Web文件,不仅能够解决海量内容发布的时效性问题,还能确保数据在存储与传输过程中的标准化与可读性,这一过程的核心在于建立从内容生成到前端展示的无缝数据管道,利用……

    2026年2月21日
    14400
  • AIoT有什么意思?AIoT是什么意思通俗解释

    AIoT即智能物联网,是人工智能(AI)与物联网(IoT)的深度融合,其核心在于通过AI技术赋予IoT设备智能决策能力,实现从“万物互联”到“万物智联”的跨越,这一技术组合正在重塑智能家居、工业制造、智慧城市等领域,成为数字化转型的关键驱动力,AIoT的核心价值AIoT通过AI算法分析IoT设备产生的海量数据……

    2026年3月19日
    10400
  • ai中怎么存储figure,AI文件如何保存图片格式?

    在Adobe Illustrator(简称AI)的设计工作中,高效且科学地管理图形素材是提升设计效率的关键环节,AI中怎么存储figure的核心结论在于:根据图形的复用频率、编辑需求以及跨软件协作的场景,灵活选择“定义为画笔”、“存储为符号”、“导出为外部文件”或“保存为模板”这四种专业方案,这四种方法构成了A……

    2026年3月5日
    14700
  • Win7远程无法连接服务器怎么办,是什么原因?

    Win7系统远程连接到服务器失败,绝大多数情况源于远程桌面服务未开启、防火墙拦截、网络连通性问题或账户权限配置错误,按照“检查服务-验证防火墙-测试网络-确认账户-查看日志”的流程逐一排查,即可解决大部分连接故障,业内专家指出,远程连接失败中相当一部分与网络配置或防火墙规则不当有关,但很多用户习惯性先怀疑密码或……

    2026年8月23日
    700
  • 服务器能连接多少客户端?服务器支持的最大客户端数量

    服务器支持的客户端数量没有固定上限,它主要取决于服务器的硬件配置、网络带宽以及所采用的通信协议,通常从几十台到数百万台不等,在构建任何网络应用时,理解这一边界至关重要,很多初学者常问“服务器可以有几个客户端”,这其实是一个关于资源分配与系统架构的复杂问题,我们不再谈论抽象的理论,而是直接切入实际部署中你会遇到的……

    2026年7月12日
    10800
  • AIoT的企业有哪些?AIoT企业排名前十名

    AIoT企业的核心竞争力在于将人工智能与物联网深度融合,实现数据驱动的智能化运营,从而提升效率、降低成本并创造新商业模式,这一结论基于技术成熟度、市场需求以及行业实践的综合分析,以下从技术、应用场景、商业价值三个维度展开论证,技术融合:AI与IoT的协同效应AIoT企业的技术壁垒在于端到端的智能化闭环,具体表现……

    2026年3月13日
    11100
  • 服务器ECS是什么意思,ECS服务器全称及作用解析

    服务器ECS是什么意思?ECS(Elastic Compute Service)是阿里云提供的弹性计算服务,即云服务器,是一种可随时获取、弹性伸缩、安全可靠的计算资源服务,它替代了传统物理服务器的购买与运维模式,让用户通过互联网按需使用虚拟化计算资源,是云计算最基础、最核心的服务类型之一,ECS的本质:虚拟化计……

    程序编程 2026年4月17日
    4700
  • amrjs播放失败怎么办?amrjs播放器兼容性问题

    amrjs播放的核心在于通过特定的音频解码器或在线转换工具,将AMR格式的音频文件转换为MP3等通用格式,从而实现跨设备、跨平台的顺畅播放,AMR(Adaptive Multi-Rate)格式最初是为移动通信设计的,旨在压缩语音数据以节省带宽,随着智能手机和多媒体应用的普及,这种老旧的格式逐渐显得格格不入,很多……

    2026年5月31日
    4700
  • 我的世界Java服务器卡顿是什么原因,怎么解决?

    我的世界Java版服务器卡顿,核心解决思路是从服务端优化、JVM参数调校再到硬件排查逐层推进,多数情况下先换核心再调参数就能明显缓解,你的服务器到底卡在哪一步排查卡顿之前,得先弄清楚症状,Java版服务器的卡顿分成两类,处理思路完全不同,第一类是TPS下降,表现为全服玩家同时卡顿,怪物不动,方块破坏后要等几秒才……

    2026年10月20日
    200
  • 构建数据仓库需要哪些核心信息?数据仓库搭建流程详解

    构建数据仓库的核心在于明确业务目标、梳理数据源结构、设计合理的模型架构以及规划ETL流程,而非单纯的技术堆砌,很多企业在启动数据仓库项目时,往往陷入“先建库再找用”的误区,导致后期数据孤岛林立,维护成本高昂,真正的构建过程,是一场从业务痛点到数据落地的系统工程,我们需要像建筑师一样,先看懂图纸(业务需求),再勘……

    2026年5月27日
    5900

发表回复

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