需配置本地异盘增量备份:一、挂载新硬盘至/www/backup_disk并设为宝塔可写;二、用rsync脚本实现差异同步;三、软链接/www/backup指向异盘目录;四、可用hard link方式模拟增量归档。

如果您的宝塔面板网站数据当前仅存储在系统盘,且希望将备份文件存放到另一块物理硬盘上,并实现每次仅备份变化部分以节省空间和时间,则需配置本地异盘增量备份。以下是实现此目标的具体步骤:
一、挂载并配置异盘为备份目标目录
需先将额外硬盘挂载至系统,并设置为宝塔可写入的独立路径,确保备份数据不与系统盘耦合,提升安全性与空间利用率。
1、使用 fdisk -l 查看新硬盘设备名(如 /dev/sdb)。
2、执行 mkfs.xfs /dev/sdb 格式化硬盘(根据实际文件系统调整命令)。
3、创建挂载点:mkdir /www/backup_disk。
4、临时挂载:mount /dev/sdb /www/backup_disk。
5、编辑 /etc/fstab,追加一行实现开机自动挂载(例如:/dev/sdb /www/backup_disk xfs defaults 0 0)。
6、执行 chown -R www:www /www/backup_disk,确保宝塔运行用户具备读写权限。
二、启用rsync增量同步机制
宝塔原生备份不直接支持增量,但可通过自定义脚本调用 rsync 实现差异同步,仅传输新增或修改的文件,避免全量重复拷贝。
1、确认系统已安装 rsync:which rsync,若无则执行 yum install -y rsync 或 apt install -y rsync。
2、进入宝塔计划任务,添加“Shell 脚本”任务,执行周期设为每日。
3、脚本内容如下(请按实际路径替换):
#!/bin/bash
RSYNC_DIR="/www/backup_disk/site_backup"
SOURCE_DIR="/www/wwwroot/example.com"
DATE=$(date +%Y%m%d)
BACKUP_DIR="$RSYNC_DIR/$DATE"
LAST_BACKUP=$(ls -t $RSYNC_DIR | head -n1)
if [ -n "$LAST_BACKUP" ] && [ -d "$RSYNC_DIR/$LAST_BACKUP" ]; then
rsync -av --delete --link-dest="$RSYNC_DIR/$LAST_BACKUP" "$SOURCE_DIR/" "$BACKUP_DIR/"
else
rsync -av "$SOURCE_DIR/" "$BACKUP_DIR/"
fi
4、保存后启用该计划任务。
三、配置宝塔内置备份路径重定向
通过软链接方式将宝塔默认备份目录指向异盘路径,使所有通过面板触发的“网站备份”操作自动落盘至异盘,同时保留面板界面操作一致性。
1、停止宝塔备份服务:bt 16(选择“停止”备份服务)。
2、备份原有备份目录:mv /www/backup /www/backup_bak。
3、创建指向异盘的软链接:ln -sf /www/backup_disk/backup /www/backup。
4、重启备份服务:bt 16(选择“启动”)。
5、在面板中新建一次网站备份,验证生成的 .tar.gz 文件是否实际位于 /www/backup_disk/backup/site 目录下。
四、使用硬链接模拟增量归档
利用 hard link 特性,在每次全量备份时复用未变更文件的磁盘索引,实现空间等效于增量的效果,适用于对 rsync 不熟悉但需快速落地的场景。
1、在异盘创建主备份基线目录:mkdir -p /www/backup_disk/hardlink_base。
2、首次执行完整备份到该目录:tar -cf /www/backup_disk/hardlink_base/full_$(date +%Y%m%d).tar -C /www/wwwroot example.com。
3、后续每日执行带硬链接引用的备份:tar -cf /www/backup_disk/hardlink_base/inc_$(date +%Y%m%d).tar --hard-dereference --listed-incremental=/www/backup_disk/hardlink_base/snapshot.snar -C /www/wwwroot example.com。
4、将上述命令写入宝塔计划任务,设置为每日凌晨执行。









