Linux怎么拷贝文件到另一台服务器?,用什么命令?

用 scp 和 rsync 完成跨服务器文件拷贝

把文件从一台 Linux 服务器拷贝到另一台,最直接的方法是使用 scp 命令,数据量大的场景用 rsync 更稳。这两款命令都是 Linux 系统内置的远程拷贝工具,一个字节一个字节地把文件从源机器搬到目标机器,不需要中间介质,也不需要额外安装图形界面。

Linux 服务器之间拷贝文件有哪些常用命令

在服务器运维和开发部署场景里,每一台机器都是一个独立的文件岛屿。服务器迁移文件是个高频需求,比如新环境部署、日志归档、备份同步,动手之前先理清楚三款主流工具的差异。

Linux系统,查看可执行程序依赖并转储到其他文件夹,拷贝到其他服务器去使用
加载中
Linux系统,查看可执行程序依赖并转储到其他文件夹,拷贝到其他服务器去使用
工具 适用场景 特点 备注
scp 单次拷贝、少量文件 简单直接,加密传输 无法断点续传
rsync 大文件、增量同步 支持断点续传,只传差异部分 需额外确认两端已安装
sftp 交互式操作 适合手动静默操作 类似 FTP 但走 SSH

行业共识认为,scp 是入门首选,rsync 是生产环境主力,下面拆开讲。

用 scp 命令实现 Linux 拷贝到远程服务器

scp 全称 secure copy,基于 SSH 协议加密传输,它的语法和 cp 类似,只是多了一个远程主机的前缀。

从本机拷到远程服务器的基础用法

把当前目录下的 backup.tar.gz 推到远程服务器的 /data 目录下:

scp backup.tar.gz root@192.168.1.100:/data/

这一条命令里,root 是目标机器的登录用户名,168.1.100 是目标机器的 IP 地址,冒号后面跟着目标路径,执行后会提示输入密码,输入正确即开始传输。

从远程服务器拉到本机的操作

反向操作,把远程服务器上的文件下载到本地:

scp root@192.168.1.100:/data/access.log /root/local_backup/

注意顺序:远端地址写在前面,本地路径写在后面,这个方向容易搞混,但记住一个规律scp 的语法永远是“来源在前,目标在后”。

递归拷贝整个文件夹

scp 不加参数时只能拷文件,拷贝目录必须加 -r:

scp -r /opt/webapp/ root@192.168.1.100:/opt/

-r 表示 recursive,遍历整个目录结构,实际执行时,如果目录里有大量小文件,scp 会逐文件建立连接,速度较慢,这时候建议改用 rsync。

指定端口和 SSH 密钥

有些服务器出于安全考虑,SSH 端口不是默认的 22,用

Linux怎么拷贝文件到另一台服务器?,用什么命令?

-P 指定端口,注意是大写:

scp -P 2222 file.txt user@server.com:/tmp/

如果已经配置了 SSH 免密钥登录,scp 会自动使用密钥认证,不再询问密码,这对脚本化自动拷贝至关重要。

scp 的痛点:中断了就得重来

scp 没有断点续传的能力,拷一个 20G 的数据库备份文件,网络抖了一下,整个文件就得从头再传,这是 scp 最让人抓狂的地方,也是为什么生产环境更推荐 rsync 的原因。

rsync:Linux 服务器间大文件拷贝的稳定方案

rsync 同样基于 SSH 协议,但它的设计哲学完全不同,rsync 核心优势是增量传输只发送源文件和目标文件不一致的部分,已经存在且相同的块直接跳过。

基本拷贝命令

rsync -avz /data/app/ root@192.168.1.100:/data/app/

拆解参数:

  • -a:归档模式,保留权限、时间戳、软链接等属性
  • -v:显示进度信息
  • -z:传输时压缩,适合文本类文件

加上 --progress 可以实时看到传输百分比和速度:

rsync -avz --progress /data/app/ root@192.168.1.100:/data/app/

断点续传:rsync 碾压 scp 的关键能力

rsync 天然支持断点续传,即使传输中途断线,重新执行同一条命令,它会从上次中断的位置继续,而不是从头再来,这个特性在跨机房传输大文件时尤为重要。

增量同步:两台服务器保持目录状态一致

rsync 的 --delete 参数让目标目录严格镜像源目录源端删了的文件,目标端也删除,这在做代码发布和多机同步时非常实用:

rsync -avz --delete /var/www/html/ root@server2:/var/www/html/

限速传输避免占用业务带宽

生产服务器上,带宽资源金贵,rsync 提供 --bwlimit 参数限速,比如限制为 5MB/s:

rsync -avz --bwlimit=5120 /backup/ root@server2:/backup/

5120 的单位是 KB/s,即每秒约 5MB。

常用 rsync 组合技巧

  • 加 --exclude 排除不需要同步的目录:--exclude='cache/' --exclude='.tmp'
  • 加 -e 'ssh -p 2222' 指定 SSH 端口
  • 加 --dry-run 试运行,不实际传输,只显示会执行哪些操作
rsync -avz --dry-run /data/ root@server2:/data/

试运行是个极好的习惯,大规模操作之前先跑一遍 dry-run,确认无误再去掉该参数正式执行。

Linux 服务器之间免密拷贝配置方法与权限陷阱

Linux怎么拷贝文件到另一台服务器?,用什么命令?

每次拷贝都输密码,既麻烦又难以自动化,配置 SSH 密钥免密登录是正规做法。

免密登录配置三步走

第一步,在源机器生成密钥对:

ssh-keygen -t rsa -b 4096

一路回车即可,默认生成在 ~/.ssh/id_rsa(私钥)和 ~/.ssh/id_rsa.pub(公钥)。

第二步,把公钥推送到目标机器:

ssh-copy-id root@192.168.1.100

该命令会将本机公钥追加到目标机器的 ~/.ssh/authorized_keys 文件中。

第三步,验证免密是否生效:

ssh root@192.168.1.100

能直接登进去,说明配置成功,scp 和 rsync 也可以免密使用了。

常见报错与解决

Permission denied (publickey,password):绝大多数情况是目标机器 ~/.ssh 目录权限不对。authorized_keys 文件权限应为 600,.ssh 目录权限应为 700:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

host key verification failed:首次连接远程主机时会出现这个提示,输入 yes 确认即可,批量部署场景可在 ssh 命令加 -o StrictHostKeyChecking=no 跳过确认。

scp 拷过去文件属主不对:远程机器的用户名和本机不同,拷过去文件的属主会变成目标机器的登录用户,需要使用 -p 参数保留时间戳,或者传输后执行 chown 调整属主。

什么情况下选择 sftp 交互式传输

sftp 适合少量、临时性、需要手动浏览目录的传输场景,登录命令:

sftp root@192.168.1.100

登录成功后进入交互界面,操作用命令:

  • ls:查看远端目录
  • lcd 和 cd:切换本地/远端目录
  • put filename:上传文件
  • get filename:下载文件
  • bye 或 exit:退出

业内专家指出,sftp 在日常维护中更多用于单文件应急处理,自动化运维脚本里很少出现它的身影,如果你要写脚本定时传输,scp 和 rsync 才是正解。

结合应用场景挑选适合的拷贝方式

首次部署新服务器,代码包加配置文件总共不到 500M,一次性拷贝

直接用 scp,一条命令解决,不需要额外思考。

scp -r /project/build/ root@新服务器IP:/opt/project/

多台同配置服务器保持数据一致,且每天定时执行

必须用 rsync,结合 cron 定时任务:

Linux怎么拷贝文件到另一台服务器?,用什么命令?

30 2    rsync -avz --delete /data/sync/ root@server2:/data/sync/

定时增量同步,稳定高效。

数据库备份文件 50G,跨机房传输,随时可能断线

rsync 加断点续传加限速:

rsync -avz --progress --bwlimit=20480 /backup/db_$(date +%F).sql root@server2:/backup/

结合 --partial 参数,即使中断,部分传输的文件也不会被删除,下次执行会从中断点继续。

服务器迁移或内容初始化,需要把整块磁盘分区数据搬到新机器

rsync 加 -a 参数并把源和目标指向分区挂载点:

rsync -avx / /mnt/new_disk/

-x 表示不跨越文件系统边界,避免把 /proc、/sys 之类的虚拟文件系统一并拷贝。

实操时容易忽略的几个细节

拷贝大文件前先检查磁盘空间,执行 df -h 看目标机器的可用空间,否则传到一半磁盘满了,既浪费带宽又留下残缺文件。

长传过程中终端断开了也不要慌,用 nohup 或 screen/tmux 把命令放到后台执行,终端断开不影响传输:

nohup rsync -avz /data/ root@server2:/data/ > rsync.log 2>&1 &

传完以后做校验,简单的校验是对比文件大小和 md5 值:

md5sum filename

源机器和目标机器各执行一次,结果一致说明文件完整,也可用 rsync 的 -c(checksum)参数跳过时间戳差异,直接校验内容一致性。

常见问题解答

scp 和 rsync 到底选哪个

单次小文件传输选 scp;大文件、增量同步、断点续传、定时任务选 rsync,rsync 功能是 scp 的超集,但命令参数更多,学习曲线稍陡。

rsync 断点续传具体怎么操作

传输中断后,直接重新执行原命令,rsync 默认会对比源和目标文件的块信息,跳过已传输完成的部分,无需额外加参数,配合 --partial 可以确保中断时留下的部分文件不被自动清理。

两台服务器都在内网,带宽受限,如何加快拷贝速度

先用 ping 测延迟,再用 iperf3 测实际带宽,如果网络本身没问题,rsync 加 -z 压缩参数能显著减少文本类文件的传输量,加 --bwlimit 防止占满带宽影响其他服务。

无论用 scp 还是 rsync,核心原则不变:先小文件试通,再跑大任务;先 dry-run 验证,再正式执行,跨服务器拷贝是 Linux 管理的日常操作,掌握这两把工具,文件传输不再是难题。

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

赞 (0)
UDP如何区分客户端和服务器发送的数据,什么是UDP协议
上一篇 2026年9月29日 00:26
ios我的世界1.17服务器材质包怎么装,哪里下载?
下一篇 2026年9月29日 00:26

相关推荐

  • 别人的app项目服务器端怎么连接app,需要哪些配置步骤?

    别人的app项目服务器端连接app,核心就是让app通过HTTP请求访问你部署好的后端API,后端处理完数据把JSON返回给客户端,很多接盘侠拿到代码后,第一个疑问就是“服务器端到底怎么跟app对接”,下面从网络链路、接口定位、服务器配置和故障排查四步讲清楚,全是可验证的操作,app服务器端怎么连接app?先看……

    2026年10月10日
    100
  • NS狂野飙车9连不上服务器?,有哪些解决方法?

    NS《狂野飙车9》连不上服务器,核心解法是重启光猫和Switch,然后把手动DNS改成8.8.8.8和4.4.4.4;如果还是连不上,去任天堂官网查服务器状态, 这两个动作能解决九成以上的连接问题,剩下那一成多半出在运营商或老任官方服务器身上,下文按排查优先级把完整方案拆开讲,照着做就行,NS狂野飙车9无法连接……

    2026年10月17日
    600
  • 手机QQ点别人空间服务器错误怎么办,是什么原因

    如果你的手机QQ点别人空间时跳出“服务器错误”,多半不是腾讯的服务器真崩了,而是你手机的网络链路、QQ客户端缓存或对方空间的权限设置,在那一瞬间触发了误报,换个网络、清一次QQ存储缓存,大概率就能恢复,很多朋友一看到“服务器错误”五个字就以为是自己号被封了,或者对方把自己拉黑了,其实在手机QQ里点进别人空间出现……

    2026年9月28日
    900
  • Excel固定字体怎么设置?如何永久修改默认字体

    在 Excel 中,“固定字体”通常有两种理解:一是统一整个表格的字体样式,二是防止字体被意外更改或打印时出错,以下是几种常见场景的操作方法:统一设置整个工作表的字体(最常用)如果你想让所有单元格都使用同一种字体(如微软雅黑、宋体等):点击工作表左上角的全选按钮(行号“1”上方、列标“A”左侧的三角形),或按快……

    2026年7月10日
    15400
  • 双CPU服务器A1内存槽怎么对应,内存插槽如何对应CPU?

    服务器双CPU的A1内存槽通常对应CPU0(主CPU)的内存通道A第1槽,但最终要以主板丝印、厂商内存安装表和BIOS识别结果为准;双路配置下每个CPU只认自己管辖的DIMM槽,A1并不是插到哪一边都能正常点亮,这个结论听着简单,实际在机房上架时很容易踩坑,比如一台双路服务器只装了一颗CPU,运维把内存插在靠近……

    程序编程 2026年11月9日
    200
  • 苹果8plus无法激活服务器咋办,服务器无法激活怎么解决?

    苹果8plus无法激活服务器,本质是手机与苹果的激活服务器之间通信被中断,先检查网络、时间与服务器状态,九成以上情况可通过换网络、改DNS或用电脑端恢复模式解决,苹果8p激活服务器连接不上的常见原因先说一个具体场景:周末下午想给刚换电池的8p恢复出厂设置,结果激活时卡在白屏转圈,提示“无法激活,请连接网络”,这……

    2026年10月15日
    300
  • idea的服务器怎么连接数据库,连不上是什么原因

    IDEA连接数据库的核心路径是:在专业版中通过Database工具窗口配置数据源,填写主机、端口、库名、账号密码,并加载对应JDBC驱动完成连接;社区版则需借助JDBC代码或第三方插件实现,下面从工具机制、实操步骤、版本差异到服务器环境配置,逐层拆开讲清楚,先弄明白IDEA连接数据库靠的是什么IntelliJ……

    程序编程 2026年11月13日
    200
  • win10打开服务器失败怎么回事,怎么解决

    Win10打开服务器失败,多数情况下问题不在服务器,而在本机的网络链路、防火墙规则、远程桌面服务或账号权限配置上,按“网络→服务→权限”的顺序排查,大部分问题可以在5-10分钟内自行解决,win10 打开网络服务器失败原因排查先确认网络链路通不通排查的第一步不是改设置,而是先确认电脑和服务器之间网络是否连通,按……

    2026年10月20日
    300
  • VPS远程桌面无法登录怎么办,服务器连接失败是什么原因?

    遇到VPS远程桌面服务器无法登录,按顺序排查网络连通性、远程桌面端口、防火墙/安全组规则、系统服务状态和登录凭据,大多数问题能自行解决,VPS远程桌面服务器无法登录,是使用Windows系统VPS时最常遇到的故障,无论是个人建站还是中小企业办公,一旦远程桌面断开,整个业务可能陷入停滞,常见原因包括网络线路波动……

    2026年10月6日
    300
  • 轻量应用服务器怎么搭建sk5?,有哪些操作步骤

    轻量应用服务器搭建sk5(SOCKS5代理)的核心答案:选择Linux系统(如Ubuntu/CentOS),通过SSH登录后安装dante-server或3proxy,配置端口、认证方式并开放防火墙即可完成部署,整个过程约15分钟,轻量应用服务器怎么搭建sk5教程选对轻量服务器比配置更重要搭建sk5之前,先确认……

    2026年9月7日
    1100

发表回复

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