Skip to content

Linux rsync 命令代替 scp

This content is not available in your language yet.

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

你可以把它理解成:

👉 “聪明版复制工具”

它的特点是:

  • 只复制新增或修改的文件
  • 支持本地 → 本地
  • 支持本地 → 远程(SSH)
  • 支持远程 → 本地
  • 可以做备份 / 镜像 / 部署
Terminal window
rsync [选项] 源路径 目标路径

例如:

Terminal window
rsync -av file.txt /backup/
Terminal window
-a = -r + -l + -p + -t + -g + -o

简单理解:

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

显示详细过程:

Terminal window
-v

适合远程传输:

Terminal window
-z

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

Terminal window
rsync -av --delete src/ dest/

说明:

  • 源有 → 保留
  • 源没有 → 删除目标里的

显示传输进度:

Terminal window
rsync -av --progress src/ dest/

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

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

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

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

👉 注意 / 很关键!

写法含义
data/复制目录里的内容
data连目录一起复制
Terminal window
rsync -avz /local/path user@192.168.1.10:/remote/path

👉 默认走 SSH

Terminal window
rsync -avz user@192.168.1.10:/remote/path /local/path
Terminal window
rsync -avz -e "ssh -p 2222" src/ user@host:/dest/
Terminal window
rsync -av --delete /data/ /backup/

👉 常用于:

  • 网站备份
  • NAS 同步
  • Docker 数据备份
Terminal window
rsync -av --exclude="node_modules" src/ dest/

多个排除:

Terminal window
--exclude="*.log"
--exclude=".git"
Terminal window
rsync -av --bwlimit=1000 src/ dest/

(单位 KB/s)

Terminal window
rsync -av --partial src/ dest/
Terminal window
rsync -avnc src/ dest/
Terminal window
rsync -av dir/ backup/

👉 复制 dir 里面的内容

Terminal window
rsync -av dir backup/

👉 复制 整个 dir 目录


一旦写反:

Terminal window
rsync -av --delete backup/ data/

👉 可能把你数据删光 😅

✔ 建议:

Terminal window
先加 -n 测试!

有些文件需要 root:

Terminal window
sudo rsync -av /etc/ backup/

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

Section titled “七、一个真实常用命令(推荐记住)”
Terminal window
rsync -avz --delete --progress /data/ user@server:/backup/

👉 含义:

  • 同步数据
  • 自动压缩
  • 显示进度
  • 保持一致

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

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

Section titled “实战(把本地静态博客同步到服务器)”
Terminal window
rsync -rvz --delete ./dist/ xtp@xiaotupo.com:/home/xtp/xiaotupo.com/
Terminal window
scp -r .\public\* xtp@xiaotupo.com:/home/xtp/xiaotupo.com

使用感受:

用了 rsync 真是太爽了,比 scp 命令不知快了多少倍,只同步改变的部分真的好用的很!