# rsync 使用指南 🚀

rsync 是一个用于远程和本地同步文件的工具,支持增量传输、压缩以及权限保留。

# 1. 安装 rsync 🛠️

# 🐧 Linux(Ubuntu/Debian)

sudo apt install rsync

# 🍏 macOS

brew install rsync

# 🪟 Windows(使用 WSL 或 Cygwin)

# 在 WSL 环境中安装(以 Ubuntu 为例)
sudo apt install rsync

# 2. rsync 基本语法 📜

rsync [选项] 源 目标
  • 📂 本地同步rsync /source/ /destination/
  • 🌍 远程推送rsync /source/ user@remote:/destination/
  • ⬇️ 远程拉取rsync user@remote:/source/ /destination/

# 3. 常用选项 ⚙️

选项说明
-a📦 归档模式(保留权限、时间戳、符号链接等)
-v🔍 显示详细信息
-z🗜️ 传输时压缩数据
-P⏳ 显示进度(等价于 --progress --partial
--delete🗑️ 目标目录中没有的文件会被删除
-e "ssh -p PORT"🔐 指定远程 SSH 端口
--exclude="pattern"🚫 排除某些文件
--include="pattern"✅ 只包含某些文件
-n🛑 预览模式,不执行同步

# 4. 典型使用示例 🏗️

# 4.1 📂 本地目录同步

rsync -av /home/user/docs/ /backup/docs/

# 4.2 🌍 远程推送(本地 → 远程服务器)

rsync -avz /home/user/docs/ user@remote:/backup/docs/

# 4.3 ⬇️ 远程拉取(远程服务器 → 本地)

rsync -avz user@remote:/backup/docs/ /home/user/docs/

# 4.4 🔐 指定 SSH 端口

rsync -avz -e "ssh -p 2222" /home/user/docs/ user@remote:/backup/docs/

# 4.5 🗑️ 删除目标目录多余文件

rsync -avz --delete /home/user/docs/ user@remote:/backup/docs/

# 4.6 🔄 仅同步修改过的文件

rsync -avzu /home/user/docs/ user@remote:/backup/docs/

# 4.7 ⏸️ 断点续传

rsync -avz --partial --progress /home/user/docs/ user@remote:/backup/docs/

# 4.8 🎯 仅同步特定类型的文件

rsync -avz --include="*.txt" --exclude="*" /home/user/docs/ user@remote:/backup/docs/

# 4.9 🚫 排除特定文件

rsync -avz --exclude="*.log" /home/user/docs/ user@remote:/backup/docs/

# 5. 配合 cron 定时备份 ⏰

编辑 crontab 添加自动同步任务:

crontab -e

添加以下内容,每天凌晨 2 点自动同步:

0 2 * * * rsync -avz --delete /home/user/docs/ user@remote:/backup/docs/

# 6. 高级技巧 🏆

# 6.1 🚀 多线程加速

rsync -avz --info=progress2 --compress-level=1 /home/user/docs/ user@remote:/backup/docs/

# 6.2 🎛️ 限制 IO 负载(减少系统资源占用)

ionice -c2 -n7 rsync -avz /home/user/docs/ user@remote:/backup/docs/

# 7. 总结 📌

功能命令
📂 本地同步rsync -av /source/ /destination/
🌍 远程推送rsync -avz /source/ user@remote:/destination/
⬇️ 远程拉取rsync -avz user@remote:/source/ /destination/
🔐 指定 SSH 端口rsync -avz -e "ssh -p 2222" /source/ user@remote:/destination/
⏸️ 断点续传rsync -avz --partial --progress /source/ user@remote:/destination/
🗑️ 删除多余文件rsync -avz --delete /source/ user@remote:/destination/
🔄 仅同步修改文件rsync -avzu /source/ user@remote:/destination/
🎯 仅同步 .txt 文件rsync -avz --include="*.txt" --exclude="*" /source/ user@remote:/destination/
🚫 排除 .log 文件rsync -avz --exclude="*.log" /source/ user@remote:/destination/
⏰ 定时任务0 2 * * * rsync -avz --delete /source/ user@remote:/destination/

🎉 希望这个指南对你有帮助! 🚀

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

ZJM 微信支付

微信支付

ZJM 支付宝

支付宝