rsync 入门:把目录增量同步到另一台服务器
【摘要】 介绍 rsync 的基本用法:本机目录增量同步、通过 SSH 同步到远程服务器、用排除规则跳过无关文件,以及 --delete 与 --dry-run 的注意点。适合日常备份和静态资源发布。
备份和迁移文件时,很多人第一反应是 scp。文件少没问题,目录一大、还要反复同步时,scp 每次都整份拷,又慢又费带宽。rsync 只传有变化的部分,还能保留权限和时间戳,适合日常备份和发布静态资源。本文用几个例子说明基本用法。
一、本机目录同步
先从最简单的本机复制开始:
rsync -avh /data/photos/ /backup/photos/
-a 是归档模式,会递归并尽量保留权限、时间等属性;-v 打印过程;-h 让大小可读。注意源路径末尾的斜杠:带斜杠表示同步「目录里的内容」,不带则把这个目录本身拷过去。
二、同步到远程服务器
rsync 默认走 SSH,写法接近 scp:
rsync -avh -e ssh /data/app/ user@192.168.1.10:/opt/app/
第一次会传全部文件,之后再跑同样命令,只传有改动的文件。加上 --delete 可以让目标端删掉源端已经没有的文件,做成「镜像」;第一次用时建议先加 --dry-run 看会删什么,确认无误再正式执行。
三、排除不需要的文件
同步代码目录时,通常不想带上缓存和依赖:
rsync -avh --exclude '.git' --exclude 'node_modules' \
./project/ user@host:/srv/project/
排除规则多时,可以写进一个文件,用 --exclude-from=excludes.txt 引用。
四、几个注意点
大目录首次同步可能很久,可以加 --progress 看进度;权限不够时远程路径要确认用户有写权限;定时备份可以配合 crontab,每天同步一次关键数据目录。掌握 rsync 之后,备份和发布会比反复 scp 省心很多。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)