rsync 同步与备份的五个实用用法
【摘要】 rsync 同步与备份的五个实用用法在服务器运维里,复制文件看似简单,但一旦涉及大目录、跨机器、断点续传和定期备份,cp 和 scp 就显得力不从心了。rsync 只传输有变化的部分,速度快、可续传、可预演,是日常同步和备份的好帮手。下面整理五个我在实际工作中最常用的用法。 一、基础同步:-a 和 -v,注意结尾斜杠rsync -av /data/project/ /backup/proj...
rsync 同步与备份的五个实用用法
在服务器运维里,复制文件看似简单,但一旦涉及大目录、跨机器、断点续传和定期备份,cp 和 scp 就显得力不从心了。rsync 只传输有变化的部分,速度快、可续传、可预演,是日常同步和备份的好帮手。下面整理五个我在实际工作中最常用的用法。
一、基础同步:-a 和 -v,注意结尾斜杠
rsync -av /data/project/ /backup/project/
-a(归档模式)会递归复制,并保留权限、时间戳、软链接、属主等信息。-v显示同步过程。- 源路径结尾的斜杠很关键:
/data/project/表示同步目录里的内容;/data/project(不带斜杠)则会在目标下再创建一个project目录。很多人第一次用都会在这里踩坑。
二、先预演再执行:–dry-run
rsync -av --delete --dry-run /data/project/ /backup/project/
-n / --dry-run 只列出将要发生的变化,不做任何真实改动。尤其在使用 --delete 之前,先预演一遍,确认不会误删重要文件,再去掉 --dry-run 正式执行。
三、做镜像:–delete 保持两端一致
rsync -av --delete /data/www/ /backup/www/
默认情况下,源端删除的文件在目标端会保留。加上 --delete 后,目标端多出来的文件会被删除,使两边完全一致,适合做镜像。但它的破坏力也大,务必配合上一节的预演使用。
四、跨机器同步:走 SSH,支持断点续传
rsync -avz --partial --progress -e "ssh -p 2222" /data/logs/ user@10.0.0.8:/backup/logs/
-z传输时压缩,适合带宽有限的场景。--partial保留传了一半的文件,网络中断后再次执行可以接着传。--progress显示每个文件的进度。-e "ssh -p 2222"指定 SSH 端口,配合密钥登录即可免密同步。
五、排除文件与限速:–exclude 和 --bwlimit
rsync -av --exclude='*.log' --exclude='node_modules/' --exclude-from=exclude.txt \
--bwlimit=5000 /data/app/ user@backup:/backup/app/
--exclude排除不需要备份的日志、缓存、依赖目录,--exclude-from可以从文件读取规则,方便统一管理。--bwlimit=5000把带宽限制在约 5000 KB/s,避免白天备份占满业务带宽。
小结:配合 crontab 实现定时备份
0 2 * * * rsync -a --delete /data/www/ /backup/www/ >> /var/log/rsync-www.log 2>&1
把 rsync 写进 crontab,每天凌晨自动同步并记录日志,就是一个简单可靠的备份方案。记住三点:注意结尾斜杠、用 --delete 前先 --dry-run、跨机器同步用 SSH 密钥。掌握这五个用法,日常的文件同步和备份基本都能从容应对。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)