Rsync命令快速入门:文件同步利器(5分钟上手指南)
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
# 使用sudosudo 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/srsync -av --bwlimit=1000 source/ dest/
3. 保持部分运行
bash
# 遇到错误继续运行rsync -av --partial --progress source/ dest/
七、小结
rsync的主要优势:
- 增量复制,节省时间和带宽
- 灵活的过滤机制
- 可靠的远程传输
- 保持文件属性
- 支持压缩传输
建议使用场景:
- 大文件传输
- 服务器间数据同步
- 增量备份
- 项目部署
记住这个简单的模式就能应付大部分场景:
bash
rsync -avz --progress --exclude='不需要的文件' 源目录/ 目标目录/
Preview
6
点个赞 ~
版权申明: © 本文著作权归YGHub所有,未经YGHub网授权许可,禁止第三方以任何形式转载和使用本文内容。
Related article
基于微信小程序实现图片压缩、裁剪、尺寸调整的实践总结
YGHub
2025-01-02
4
Vue3 作用域插槽,提升组件复用性的利器
YGHub
2024-12-03
1
Nuxt3 中使用 localStorage 的正确姿势
YGHub
2024-12-01
3
Vue3 子组件 defineExpose 暴露方法无效的三种常见场景及解决方案
YGHub
2024-11-24
7
Vue3 组件通信实战,实现跨组件数据更新
YGHub
2024-11-21
8