Linux文件传输全攻略,多种方法实现跨服务器文件传输

admin
Linux跨服务器文件传输需根据场景选择合适方法:scp基于SSH加密传输,适合小文件快速拷贝;rsync支持增量同步,高效处理大文件且可压缩;sftp提供交互式界面,兼顾安全与操作灵活性;sshfs可挂载远程目录至本地,实现透明访问;wget/curl则适用于HTTP/FTP协议下载,这些工具各具优势,结合SSH密钥认证可进一步提升安全性,满足不同规模文件的传输需求,是Linux系统管理中不可或缺的技能。

在Linux服务器管理中,跨服务器文件传输是一项基础且高频的操作,无论是数据备份、应用部署还是日志同步,都需要将文件从一台Linux服务器传输到另一台,本文将详细介绍几种主流的Linux文件传输方法,包括它们的原理、使用场景、具体操作步骤及优缺点对比,帮助你根据实际需求选择最合适的方案。

引言:为什么需要跨服务器文件传输?

在日常运维中,常见的跨服务器文件传输场景包括:

  • 将本地开发的代码部署到测试/生产服务器;
  • 备份重要数据到远程服务器;
  • 多台服务器间同步日志或配置文件;
  • 大数据集的分发与共享。

针对不同场景(如文件大小、传输频率、是否需要断点续传、安全性要求等),Linux提供了多种传输工具,接下来逐一解析。

Linux文件传输全攻略,多种方法实现跨服务器文件传输

方法一:SCP——简单高效的文件传输利器

简介

SCP(Secure Copy Protocol,安全复制协议)是基于SSH协议的文件传输工具,通过加密通道传输数据,确保数据安全性,它支持文件和目录的上传、下载,操作简单,是大多数Linux系统的默认工具(通常通过openssh-client包安装)。

基本语法

# 从本地传输文件到远程服务器
scp [选项] 本地文件路径 用户名@远程服务器IP:远程路径
# 从远程服务器下载文件到本地
scp [选项] 用户名@远程服务器IP:远程文件路径 本地路径
# 传输目录(需加-r选项)
scp -r [选项] 本地目录路径 用户名@远程服务器IP:远程路径

常用选项

  • -P:指定远程服务器的SSH端口(默认22);
  • -r:递归传输目录;
  • -p:保留文件的修改时间、访问时间和权限;
  • -C:启用压缩传输(适合大文件);
  • -v:详细模式,显示传输过程(便于调试)。

实际示例

场景1:传输本地文件到远程服务器

# 将本地/home/user/test.txt传输到远程服务器的/opt目录,用户名为root
scp /home/user/test.txt root@192.168.1.100:/opt/

场景2:从远程服务器下载文件到本地

# 下载远程服务器的/opt/data.log到本地当前目录
scp root@192.168.1.100:/opt/data.log ./

场景3:传输整个目录

# 递归传输本地/home/user/project目录到远程服务器的/opt/
scp -r /home/user/project root@192.168.1.100:/opt/

场景4:指定非标准SSH端口

# 远程服务器SSH端口为2222,传输文件
scp -P 2222 /home/user/file.txt root@192.168.1.100:/opt/

优缺点

  • 优点:操作简单、基于SSH加密(无需额外配置)、支持目录传输;
  • 缺点:不支持断点续传(传输中断需重新开始)、不支持增量同步(每次传输全量文件)。

方法二:RSYNC——增量同步与高效传输首选

简介

RSYNC(Remote Sync)是一款强大的文件同步工具,通过“差异算法”仅传输文件变化的部分(增量同步),大幅减少网络传输量,尤其适合大文件或频繁同步的场景,它同样基于SSH协议,支持本地/远程、远程/远程文件同步,且具备压缩、权限保留等高级功能。

基本语法

# 从本地同步到远程(目标文件不存在则创建,存在则更新)
rsync [选项] 本地路径 用户名@远程服务器IP:远程路径
# 从远程同步到本地
rsync [选项] 用户名@远程服务器IP:远程路径 本地路径

常用选项

  • -a:归档模式,相当于-rlptgoD(保留权限、时间戳、符号链接等);
  • -v:详细输出;
  • -z:压缩传输(减少网络带宽占用);
  • -h:以人类可读格式显示传输速度(如KB/s、MB/s);
  • --progress:显示实时传输进度;
  • --delete:删除目标位置中不存在于源文件的文件(谨慎使用!);
  • --partial:支持断点续传(传输中断后可继续);
  • -e:指定传输协议(默认SSH,可自定义)。

实际示例

场景1:基础同步(本地→远程)

# 同步本地/home/user/src目录到远程/opt/dest,保留权限、时间戳,启用压缩
rsync -avz /home/user/src root@192.168.1.100:/opt/dest

场景2:显示同步进度

# 同步时显示实时进度和速度
rsync -avzh --progress /home/user/large_file.zip root@192.168.1.100:/opt/

场景3:增量同步(仅传输变化部分)

# 源目录和目标目录已有文件,仅同步新增或修改的文件
rsync -avz /home/user/app root@192.168.1.100:/opt/

场景4:断点续传

# 传输中断后,再次执行相同命令可继续传输(需配合--partial)
rsync -avz --partial /home/user/big_data.iso root@192.168.1.100:/opt/

场景5:删除目标

文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码