Skip to content
XiaoTuPo
Go back

用 Linux rsync 命令代替 scp 同步本地静态站点到服务器

xiaotupo

今天分享一个 Linux/Unix 下非常经典的文件同步工具,用一句话概括就是:只传输变化的部分,实现高效同步。比 cpscp 更快、更智能。

一、rsync 是干嘛的?

你可以把它理解成:

👉 “聪明版复制工具”

它的特点是:

二、基本语法

rsync [选项] 源路径 目标路径

例如:

rsync -av file.txt /backup/

三、最常用参数(重点)

1️⃣ -a(归档模式)

-a = -r + -l + -p + -t + -g + -o

简单理解:

👉 递归复制 + 保留权限/时间等信息

2️⃣ -v(verbose)

显示详细过程:

-v

3️⃣ -z(压缩)

适合远程传输:

-z

4️⃣ —delete

👉 让目标目录和源目录完全一致(危险但好用)

rsync -av --delete src/ dest/

说明:

5️⃣ —progress

显示传输进度:

rsync -av --progress src/ dest/

6️⃣ -n(干跑 / 预演)

👉 非常重要,用来避免误删!

rsync -av --delete -n src/ dest/

不会真的执行,只是模拟。

四、最常见使用场景

📁 1. 本地目录同步

rsync -av /home/user/data/ /backup/data/

👉 注意 / 很关键!

写法含义
data/复制目录里的内容
data连目录一起复制

🌐 2. 同步到远程服务器

rsync -avz /local/path user@192.168.1.10:/remote/path

👉 默认走 SSH

🌐 3. 从远程拉数据

rsync -avz user@192.168.1.10:/remote/path /local/path

🔐 4. 指定 SSH 端口

rsync -avz -e "ssh -p 2222" src/ user@host:/dest/

🧹 5. 做镜像备份(完全同步)

rsync -av --delete /data/ /backup/

👉 常用于:

五、实用技巧

✅ 排除文件

rsync -av --exclude="node_modules" src/ dest/

多个排除:

--exclude="*.log"
--exclude=".git"

✅ 限速

rsync -av --bwlimit=1000 src/ dest/

(单位 KB/s)

✅ 断点续传

rsync -av --partial src/ dest/

✅ 查看差异(不复制)

rsync -avnc src/ dest/

六、常见坑(很重要)

⚠️ 1. / 的区别(经典坑)

rsync -av dir/ backup/

👉 复制 dir 里面的内容

rsync -av dir backup/

👉 复制 整个 dir 目录


⚠️ 2. —delete 很危险

一旦写反:

rsync -av --delete backup/ data/

👉 可能把你数据删光 😅

✔ 建议:

先加 -n 测试!

⚠️ 3. 权限问题

有些文件需要 root:

sudo rsync -av /etc/ backup/

七、一个真实常用命令(推荐记住)

rsync -avz --delete --progress /data/ user@server:/backup/

👉 含义:


总结一句话

👉 rsync = 高效 + 增量 + 可远程 + 可镜像的复制工具

实战(把本地静态博客同步到服务器)

 rsync -rvz --delete ./dist/ xtp@xiaotupo.com:/home/xtp/xiaotupo.com/
scp -r .\public\* xtp@xiaotupo.com:/home/xtp/xiaotupo.com

Share this post on:

Previous Post
Hugo 静态建站笔记
Next Post
电阻全景指南:从选型原理、寄生参数到实战计算(附在线工具)