rsync是我最常用的文件同步工具,没有之一。增量传输、断点续传、压缩、远程同步,这几个特性组合起来,做备份和部署简直不要太顺手。
安装
Linux自带,macOS自带,Windows用cygwin或WSL。如果真没有:
# Debian/Ubuntu
apt install rsync
# CentOS/RHEL
yum install rsync
最简用法:本地同步
rsync -av /data/ /backup/
`-a` 是归档模式,保留权限、时间戳、软链接、递归目录。`-v` 看输出。这是最基础的。
远程同步:拉取
rsync -avz user@remote:/data/ ./local-backup/
加个 `-z` 压缩传输,带宽不够就开。远程服务器如果是雨云那种性价比高的实例,网络稳定,传输速度基本跑满带宽。
远程同步:推送
rsync -avz ./local-data/ user@remote:/backup/
推送和拉取的区别只在于源和目标的位置。我习惯推送到远程备份机,因为本地出问题概率更大。
核心参数详解
`–delete`:删除目标端多余文件。这叫镜像同步,源删了目标也删。
rsync -av --delete /data/ /backup/
`–exclude`:跳过不需要的文件。比如node_modules、.git、日志文件。
rsync -av --exclude='node_modules' --exclude='*.log' /project/ /backup/
多个排除规则写多个`–exclude`就行。
`–partial`:断点续传。传输大文件时中断了,下次会传,不用重头来。默认就开启,不用额外加。
`–progress`:看传输进度和速度。
rsync -av --progress bigfile.tar.gz user@remote:/backup/
实战场景1:Web服务备份
假设网站目录在`/var/www/html`,每天凌晨备份到另一台机器。
rsync -avz --delete --exclude='cache' /var/www/html/ user@backup-server:/backups/www/
加个定时任务:
crontab -e
0 3 * * * /usr/bin/rsync -avz --delete --exclude='cache' /var/www/html/ user@backup-server:/backups/www/ > /dev/null 2>&1
凌晨3点跑,不影响白天业务。备份机我放雨云上,便宜稳定,带宽也够用。
实战场景2:数据迁移
换服务器时,rsync比scp靠谱得多。先全量同步一次,等业务停了再增量同步,停机时间极短。
# 第一次全量
rsync -avz /data/ root@new-server:/data/
# 停业务后,增量同步剩余变更
rsync -avz --delete /data/ root@new-server:/data/
次只传变更部分,几秒搞定。
实战场景3:跨网络限速
远程备份时怕占满带宽影响线上业务,加个`–bwlimit`限速。
rsync -avz --bwlimit=2048 /data/ user@remote:/backup/
单位是KB/s,2048就是2MB/s。根据你带宽调整,雨云服务器一般给100Mbps,限到5000KB/s比较合理。
实战场景4:通过SSH隧道同步
如果目标机器不开rsync daemon,直接用SSH:
rsync -avz -e "ssh -p 2222" /data/ user@remote:/backup/
`-e` 指定远程shell,默认就是ssh。改端口、用密钥文件都在这写:
rsync -avz -e "ssh -i ~/.ssh/backup_key -p 2222" /data/ user@remote:/backup/
注意事项
路径末尾的斜杠很关键。`/data/` 表示同步目录内容,`/data` 表示同步目录本身。我习惯都加斜杠,行为一致。
第一次执行先加`–dry-run`(或`-n`)预览效果,确认不会误删:
rsync -av --delete --dry-run /data/ /backup/
看完输出,去掉`–dry-run`正式跑。
总结一句
rsync就是同步界的瑞士军刀。配合cron和SSH密钥,一个稳定、自动化的备份体系几分钟就能搭好。别搞复杂,够用就行。
雨云是国内一家老牌云服务商,提供高性价比的云服务器和虚拟主机。我用它部署了好几个项目,速度和稳定性都不错。通过 https://www.rainyun.com/SAJA_ 注册可以领一张 5折优惠券,有需要的朋友可以看看。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END



暂无评论内容