Linux服务器间文件获取常用SCP、RSYNC及SFTP等方法,SCP基于SSH协议,语法简单(如scp user@host:/path/file ./),适合小文件快速传输,安全性高但无增量同步,RSYNC支持增量传输(rsync -avz user@host:/path/ ./),适合大文件或定期同步,可压缩数据节省带宽,SFTP基于SSH提供交互式界面(sftp user@host),支持文件列表、上传下载等操作,适合可视化管理,需确保服务器间SSH信任配置及用户权限,选择时,小文件用SCP,大文件或增量同步选RSYNC,需交互操作则用SFTP。
在服务器运维与管理中,跨服务器获取文件是常见需求,例如数据备份、代码部署、日志同步等,Linux系统提供了多种安全高效的文件传输方式,本文将详细介绍几种主流方法,包括其原理、使用场景及具体操作,帮助读者根据实际需求选择合适的工具。
SCP:基于SSH的安全文件复制
原理与适用场景
SCP(Secure Copy Protocol)是一款基于SSH(Secure Shell)协议的文件传输工具,通过加密通道实现文件安全传输,适合小文件或少量文件的快速复制,无需额外配置服务端。
基本语法
scp [选项] 源文件 目标地址
- 源文件:可以是本地文件路径,也可以是远程服务器路径(格式:
user@remote:/path/to/file)。 - 目标地址:本地路径或远程服务器路径。
常用选项
-r:递归复制目录(需搭配使用)。-P:指定SSH端口(默认22,若远程服务器修改了SSH端口需用此选项)。-p:保留文件的权限、时间戳等属性。-C:开启压缩传输(适合大文件)。
示例操作
从远程服务器下载文件到本地
# 下载远程服务器上的单个文件(默认用户名) scp user@192.168.1.100:/home/user/data.txt ./local_data.txt # 下载远程服务器上的目录(递归) scp -r user@192.168.1.100:/home/user/data_dir ./local_data_dir # 指定SSH端口下载 scp -P 2222 user@192.168.1.100:/home/user/data.txt ./local_data.txt
从本地上传文件到远程服务器
# 上传本地文件到远程服务器指定目录 scp local_file.txt user@192.168.1.100:/home/user/ # 上传本地目录到远程服务器 scp -r local_dir/ user@192.168.1.100:/home/user/
优缺点
- 优点:无需额外配置,基于SSH加密,安全性高,操作简单。
- 缺点:不支持断点续传,大文件传输效率较低;无法实现增量同步。
RSYNC:远程同步工具(支持增量与断点续传)
原理与适用场景
RSYNC(Remote Sync)是一款高效的文件同步工具,通过差异算法仅同步文件变化的部分(增量同步),并支持断点续传,适合大文件、目录或频繁同步的场景(如日志备份、代码仓库同步)。

基本语法
rsync [选项] 源文件 目标地址
- 源文件:本地路径或远程路径(格式:
user@remote:/path/to/file)。 - 目标地址:本地路径或远程路径。
常用选项
-a:归档模式,保留文件属性(权限、时间戳等),相当于-rlptgoD的组合。-v:显示传输详情。-z:压缩传输数据,减少网络带宽占用。-r:递归复制目录(-a已包含)。-P:显示传输进度,支持断点续传(相当于--partial --progress)。--delete:删除目标位置中源没有的文件(确保目标与源完全一致,谨慎使用)。
示例操作
从远程服务器同步文件到本地
# 同步远程目录到本地(增量同步,仅传输变化的文件) rsync -avz user@192.168.1.100:/home/user/data_dir/ ./local_data_dir/ # 同步时删除本地多余文件(保持与远程完全一致) rsync -avz --delete user@192.168.1.100:/home/user/data_dir/ ./local_data_dir/ # 断点续传(传输中断后再次执行会继续) rsync -avzP user@192.168.1.100:/home/user/l
文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

