一、场景 1:本机目录实时备份
把网站目录备份到本机另一块盘:
rsync -aH --delete /usr/local/www/ /backup/www/
二、场景 2:SSH 远程增量备份(最常用)
每天把生产机数据增量备份到备份机,配合 SSH 密钥免密:
rsync -avz -e ssh --delete \
/data/ backupuser@192.0.2.20:/data/backup/
建议先在备份机生成密钥并分发公钥到生产机,实现免交互:
ssh-keygen -t ed25519
ssh-copy-id backupuser@192.0.2.20
三、场景 3:rsync 守护进程(rsyncd)
当需要从多台客户端拉取、或不想开放 SSH 时,可在服务端部署独立守护进程。
服务端 /usr/local/etc/rsyncd.conf 示例:
uid = rsync
gid = rsync
use chroot = yes
log file = /var/log/rsyncd.log
[backup]
path = /data/backup
comment = Backup module
read only = no
list = yes
auth users = backupuser
secrets file = /usr/local/etc/rsyncd.secrets
密码文件 /usr/local/etc/rsyncd.secrets(权限必须 600):
backupuser:StrongPassw0rd
chmod 600 /usr/local/etc/rsyncd.secrets
# 启动(FreeBSD 可用 rc 或手动)
rsync --daemon
客户端访问:
rsync -avz --password-file=/etc/rsync.pass /data/ backupuser@192.0.2.20::backup/
四、场景 4:cron 定时备份
编辑 crontab,每天凌晨 3 点增量备份:
0 3 * * * rsync -az -e ssh --delete /data/ backupuser@192.0.2.20:/data/backup/ >> /var/log/rsync-backup.log 2>&1
五、场景 5:网站/代码发布
rsync -avz --delete --exclude='.git/' ./dist/ user@web:/usr/local/www/
六、场景 6:异地容灾与 NAS
将备份再同步到异地 NAS 或另一机房,形成 3-2-1 备份(3 份数据、2 种介质、1 份异地):
rsync -avz -e ssh /data/backup/ druser@nas.example.com:/volume1/Offsite/
七、安全建议
- 优先使用 SSH 密钥,禁用密码登录。
- rsyncd 模块尽量设为
read only = yes,仅对写入模块单独授权。 - 用防火墙限制 rsyncd 端口(默认 873)只对内网开放。
- 任何带
--delete的任务,上线前务必用-n干跑确认。
至此,FreeBSD 下 rsync 的介绍、优点、安装、命令与实战场景已全部覆盖。把它们组合起来,你就能搭建一套稳定、省带宽、可恢复的备份与同步体系。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END














暂无评论内容