Logo

Rsync命令快速入门:文件同步利器(5分钟上手指南)

author
YGHub·2024-11-14·6·字数:299 字·阅读时间:1 分钟

一、什么是rsync?

rsync是一个快速、通用的远程和本地文件复制工具。它有这些特点:

  • 支持增量复制
  • 可以保持文件属性
  • 支持远程同步
  • 支持排除文件
  • 带宽占用小

二、基础语法

1. 本地复制

bash
# 基础语法
rsync [选项] 源目录/ 目标目录/
 
# 实例:复制文件夹
rsync -av /home/docs/ /backup/docs/
 

2. 远程复制

bash
# 复制到远程
rsync -av /local/files/ user@remote:/path/to/files/
 
# 从远程复制
rsync -av user@remote:/path/to/files/ /local/files/
 

三、常用选项

1. 最常用选项组合

bash
rsync -avz --progress 源目录/ 目标目录/
 
# -a: 归档模式,保持所有文件属性
# -v: 显示详细信息
# -z: 传输时压缩
# --progress: 显示进度
 

2. 其他实用选项

bash
# 删除目标目录中源目录没有的文件
rsync -av --delete 源目录/ 目标目录/
 
# 排除文件
rsync -av --exclude='*.log' 源目录/ 目标目录/
 
# 仅做测试,不实际复制
rsync -av --dry-run 源目录/ 目标目录/
 

四、实战案例

1. 备份项目文件

bash
# 备份并排除不需要的文件
rsync -av \
--exclude='.git' \
--exclude='node_modules' \
--exclude='*.log' \
./project/ /backup/project/
 

2. 服务器间同步

bash
# 同步到生产服务器
rsync -avz \
--progress \
--exclude='*.tmp' \
/local/app/ \
user@prod-server:/app/
 

3. 增量备份

bash
# 每日增量备份
rsync -av \
--backup \
--backup-dir=/backup/$(date +%Y%m%d) \
/source/ /backup/current/
 

五、常见问题

1. 路径末尾斜杠的区别

bash
# 带斜杠:复制目录内容
rsync -av /source/ /dest/
 
# 不带斜杠:复制目录本身
rsync -av /source /dest/
 

2. 权限问题

bash
# 使用sudo
sudo rsync -av /source/ /dest/
 
# 保持权限
rsync -av --chmod=ugo=rwX /source/ /dest/
 

六、实用技巧

1. 创建排除文件

bash
# exclude.txt
.git/
node_modules/
*.log
.DS_Store
 
# 使用排除文件
rsync -av --exclude-from='exclude.txt' source/ dest/
 

2. 限制带宽使用

bash
# 限制速度为1MB/s
rsync -av --bwlimit=1000 source/ dest/
 

3. 保持部分运行

bash
# 遇到错误继续运行
rsync -av --partial --progress source/ dest/
 

七、小结

rsync的主要优势:

  • 增量复制,节省时间和带宽
  • 灵活的过滤机制
  • 可靠的远程传输
  • 保持文件属性
  • 支持压缩传输

建议使用场景:

  • 大文件传输
  • 服务器间数据同步
  • 增量备份
  • 项目部署

记住这个简单的模式就能应付大部分场景:

bash
rsync -avz --progress --exclude='不需要的文件' 源目录/ 目标目录/
 
Preview

6

点个赞 ~

版权申明: © 本文著作权归YGHub所有,未经YGHub网授权许可,禁止第三方以任何形式转载和使用本文内容。