『AI生文』VPS 文件传输教程:全面掌握 scp 与 rsync
警告
该文章系ChatGPT生成,所有内容仅供学习、参考!
在日常运维 VPS、备份站点数据、迁移 Halo 博客或处理大文件时,安全、稳定、高效的文件传输方式 至关重要。
本篇教程将带你全面认识 Linux 中最常使用的两个文件传输工具:scp 与 rsync。无论你是新手还是老手,这篇文章都能让你一次搞懂它们的区别和最佳使用方法。
📌 1. 前置条件:安装 scp 和 rsync
在大多数 Linux 发行版中,scp 和 rsync 默认已安装。如果没有,可手动安装:
Debian / Ubuntu 系列:
sudo apt update
sudo apt install openssh-client openssh-server rsync -y
CentOS / Rocky / AlmaLinux:
sudo yum install openssh-clients openssh-server rsync -y
Arch Linux:
sudo pacman -S openssh rsync
🚀 2. 什么是 scp?
scp(Secure Copy)使用 SSH 加密通道 复制文件/目录。
特点:
-
轻量、简单、即装即用
-
适合一次性的文件直接传输
-
全量传输,不支持断点续传、增量同步
🧰 2.1 scp 的基础用法
从本地上传文件到服务器:
scp file.txt root@服务器IP:/root/
从服务器下载文件到本地:
scp root@服务器IP:/root/file.txt ./
传输目录(加 -r):
scp -r ./data root@服务器IP:/root/
指定端口:
scp -P 22 file.txt root@服务器IP:/root/
🔧 2.2 scp 常用参数
| 参数 | 作用 |
|---|---|
-r |
递归传输目录 |
-P |
指定 SSH 端口 |
-C |
启用压缩 |
-i |
指定密钥文件(用于免密登录) |
-v |
显示详细信息(调试用) |
🚀 3. 什么是 rsync?
rsync 是 Linux 中最强大的文件同步工具之一。
它支持:
-
增量同步(只传改动部分)
-
断点续传
-
压缩传输
-
保留权限/软链/时间戳
-
双向同步
-
建议用于大文件/目录同步
配合 VPS/服务器迁移尤其好用。
🧰 3.1 rsync 的基础用法
本地 → 远程(上传):
rsync -avz ./data/ root@服务器IP:/root/data/
远程 → 本地(下载):
rsync -avz root@服务器IP:/root/data/ ./data/
🔧 3.2 rsync 常用参数解析
| 参数 | 作用 |
|---|---|
-a |
归档模式(保留权限/时间/软链等) |
-v |
显示详细输出 |
-z |
压缩数据传输 |
--progress |
显示进度条 |
--delete |
删除目标中不存在的文件(保持镜像一致) |
-P |
显示进度 + 支持断点续传 |
--exclude |
排除不需要同步的文件 |
示例(带进度条):
rsync -avzP ./data root@服务器IP:/root/
⚔️ 4. scp 与 rsync 的区别对比
| 特点 | scp | rsync |
|---|---|---|
| 功能定位 | 简单复制 | 文件同步工具 |
| 传输方式 | 全量传输 | 增量传输 |
| 断点续传 | ❌ 不支持 | ✅ 支持 |
| 压缩 | 可选 (-C) |
默认更强 (-z) |
| 适合场景 | 快速复制小文件 | 大文件/备份/网站迁移 |
| 速度 | 较慢 | 更快 |
总结一句话:
小文件快速传输用 scp,大文件或目录同步一定用 rsync。
📦 5. 实战示例
🔄 5.1 用 rsync 同步 Halo 博客数据(超适合你)
假设 Halo 数据目录在:
/var/lib/halo
将其同步到另一台服务器:
rsync -avzP /var/lib/halo/ root@服务器IP:/var/lib/halo/
迁移时数据库也建议同步:
rsync -avzP /var/lib/mysql/ root@服务器IP:/var/lib/mysql/
📁 5.2 同步网站备份
rsync -avzP /www/wwwroot/site/ root@备份服务器:/backup/site/
⚡ 5.3 传输大文件并断点续传
rsync -avzP bigfile.iso root@服务器IP:/root/
中断后继续执行同一条,会自动从断点续传,非常适合大盘机之间同步。
🛠 6. 常见问题 FAQ
❓ 为什么我用 rsync 同步目录结尾要加 /?
因为:
-
data/→ 只同步目录内容 -
data→ 整个目录连文件夹一起同步
这是新手最容易踩的坑。
❓ rsync 速度太慢怎么办?
尝试:
rsync -avz --progress --bwlimit=0
或者使用多线程工具(如 rclone、BBR 加速)。
❓ 密钥认证如何配合 scp 与 rsync?
scp -i ~/.ssh/id_rsa file root@IP:/root/
rsync -avz -e "ssh -i ~/.ssh/id_rsa" ./data root@IP:/root/
🎯 7. 总结
| 工具 | 优点 | 适合场景 |
|---|---|---|
| scp | 快速、简单、开箱即用 | 小文件快速传输 |
| rsync | 增量同步、断点续传、效率高 | 迁移博客、大文件、目录同步 |
如果你要迁移 Halo 博客文件体积大(例如几十 GB),那 rsync 完胜。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 江木源
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果