FreeBSD 下使用 rsync(五):典型场景配置与实战案例

一、场景 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
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容