NAS自动同步大模型文件与网站全站备份:从配置到验证的教程
NAS 自动同步大模型文件与网站全站备份,核心做法是把 NAS 当作备份服务器,通过 SSH 和 rsync 让云主机在指定时间把模型目录、网站源码和数据库导出文件推送过去。
这样即使服务器硬盘损坏或网站被篡改,也能从 NAS 快速恢复。
下面按准备、配置、验证的顺序,用最简单的命令带你走通全流程。
开动之前,先想清楚备份结构
开始配置前,建议先规划好 NAS 上的目录层级,避免备份文件散落各处。
推荐在 NAS 上建立这样的结构:
/volume1/backup/
├── models/ # 存放 AI 大模型文件
├── web/ # 存放网站源码包
└── database/ # 存放数据库导出文件
你需要提前准备两样东西:
- NAS 已开启 SSH 服务,并支持 rsync(群晖、威联通等主流系统默认自带)。
- 云服务器能通过 SSH 访问 NAS,建议在相同内网或 VPN 环境下使用,避免大文件传输被公网带宽卡住。
如果你不确定 NAS 的 SSH 是否开启,可以在 NAS 控制台的“终端机”或“远程访问”里找到开关,开启后记下 IP 和端口。
配置服务器到 NAS 的免密登录
每次同步都用密码登录显然不现实,先配置免密登录。
在服务器上执行:
ssh-keygen -t rsa -b 4096 -C "nas-backup" -f ~/.ssh/id_rsa -N ""
然后查看公钥内容:
cat ~/.ssh/id_rsa.pub
手动登录 NAS,把生成的公钥追加到 ~/.ssh/authorized_keys 文件里。
也可以直接执行以下命令一键写入,注意替换用户名和 IP:
cat ~/.ssh/id_rsa.pub | ssh 用户名@NAS_IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
最后测试是否免密成功:
ssh 用户名@NAS_IP "echo ok"
看到 ok 就说明免密配置完成。
编写大模型文件同步脚本
大模型文件往往体积大、文件多,建议用 rsync 做增量同步,只传输新增或变化的部分。
新建脚本 /opt/scripts/sync_models.sh:
#!/bin/bash
rsync -azP --delete /data/models/ 用户名@NAS_IP:/volume1/backup/models/
参数说明:
-a归档模式,保留权限、属主和软链接。-z传输时压缩,适合文本文件,模型文件压缩率不高可去掉。-P断点续传,大文件传输中断后能继续。--delete删除 NAS 端多余文件,保证两端一致。不确定目标目录是否干净时,先不要加这个参数。
给脚本加执行权限:
chmod +x /opt/scripts/sync_models.sh
手动运行一次,确认能正常同步。
备份网站全站并同步到 NAS
网站全站备份不只是复制 HTML,源码、数据库都需要覆盖。
先在服务器上打包源码并导出数据库:
mkdir -p /backup/web /backup/database
tar -czf /backup/web/site_$(date +%F).tar.gz /var/www/html
mysqldump -u 数据库用户 -p数据库密码 数据库名 > /backup/database/db_$(date +%F).sql
如果你用宝塔面板,也可以直接在面板的“数据库”里点击导出,再把导出文件上传到 /backup/database。
接着把整个备份目录同步到 NAS:
rsync -azP /backup/ 用户名@NAS_IP:/volume1/backup/
这样源码包和数据库文件会分别进入 NAS 对应的 web、database 目录。
用 cron 设置自动同步任务
手动同步只是第一步,自动同步要靠定时任务。
编辑当前用户的 crontab:
crontab -e
加入以下两行,每天凌晨 2 点分别同步模型和网站备份:
0 2 * * * /opt/scripts/sync_models.sh > /var/log/sync_models.log 2>&1
10 2 * * * /opt/scripts/sync_web.sh > /var/log/sync_web.log 2>&1
如果想把两个任务合并到一个脚本里执行,也可以只加一行。
保存后建议重启 cron 服务:
systemctl restart crond
避坑提示:这些地方容易出问题
- NAS 未启用 rsync 服务,同步时会出现
rsync: command not found或protocol version mismatch,先去 NAS 控制台确认 rsync 已启动。 - 大模型文件多而碎,首次同步耗时很长,建议先指定一个子目录测试,确认速度和稳定性后再跑全量。
- 不要直接同步数据库运行目录,MySQL 或 MariaDB 运行中的文件直接复制很可能损坏,必须先导出为 .sql 再同步。
--delete慎用,它会把 NAS 端多余文件清掉。如果 NAS 上还有其他重要文件,请把同步目标单独划分目录。- 文件属主和权限变化,登录 NAS 后可能发现文件属主不是原来用户,rsync 加上
-a后通常能保留,但普通用户跨系统同步时权限映射不一定完美,恢复时留意。
验证备份是否真的成功
同步完成不等于备份有效。
建议做三件事:
- 试运行检查:执行
rsync -azP --dry-run 源目录 用户名@NAS_IP:/目标目录,看看 rsync 打算传输什么,确认没有遗漏。 - 核对数量与大小:在服务器和 NAS 上分别执行
du -sh比较大小,再用find统计文件数,确保基本一致。 - 模拟一次恢复:从 NAS 拉回一个网站打包文件,解压后访问测试;数据库备份也建一个临时库导入,确认数据完整。
如果你正在处理 NAS 自动同步大模型文件与网站全站备份,建议先按本文步骤完整执行,再根据自己环境微调。
重点记住:先测试后定时,先导出数据库再同步,备份后一定要做恢复演练。
这样整套方案才真正可靠。