在宝塔面板中,如果你想设置“备份全部网站”但排除某些特定网站,目前宝塔面板的默认备份功能(如计划任务中的“备份所有站点”)不直接支持排除指定网站。但你可以通过以下几种方式实现类似效果:
✅ 方法一:使用自定义脚本备份(推荐)
你可以编写一个 Shell 脚本,自动备份所有网站目录,但跳过你不想备份的网站。
步骤如下:
- 登录服务器,创建备份脚本
mkdir -p /www/backup/script
vim /www/backup/script/backup_sites.sh
- 编辑脚本内容(示例)
#!/bin/bash
# 备份目录
BACKUP_DIR="/www/backup/sites"
SITE_ROOT="/www/wwwroot"
# 要排除的网站目录(填写文件夹名)
EXCLUDE_SITES=("test.com" "demo.site" "old-project")
# 创建备份目录
mkdir -p "$BACKUP_DIR"
# 时间戳
DATE=$(date +"%Y%m%d_%H%M%S")
# 遍历所有网站目录
for site in "$SITE_ROOT"/*; do
SITE_NAME=$(basename "$site")
# 判断是否在排除列表中
skip=0
for exclude in "${EXCLUDE_SITES[@]}"; do
if [ "$SITE_NAME" == "$exclude" ]; then
skip=1
break
fi
done
# 跳过被排除的网站
if [ $skip -eq 1 ]; then
echo "跳过备份: $SITE_NAME"
continue
fi
# 开始备份
echo "正在备份: $SITE_NAME"
tar -zcf "$BACKUP_DIR/${SITE_NAME}_${DATE}.tar.gz" -C "$SITE_ROOT" "$SITE_NAME"
done
echo "备份完成!"
- 保存并赋予执行权限
chmod +x /www/backup/script/backup_sites.sh
- 在宝塔中添加计划任务
- 进入宝塔面板 → 计划任务
- 添加任务:
- 任务类型:Shell 脚本
- 执行周期:按需设置(如每天凌晨2点)
- 命令:
/bin/bash /www/backup/script/backup_sites.sh
这样就可以实现“备份所有站点但排除指定站点”。
✅ 方法二:手动选择备份(适合站点少)
如果你的网站数量不多,可以直接:
- 不使用“备份所有站点”功能。
- 在“网站”页面,逐个选中需要备份的站点,然后点击“打包”或“备份”。
- 或者在“计划任务”中为每个需要备份的站点单独设置备份任务。
✅ 方法三:利用软链接 + 排除规则(进阶)
将要排除的网站移动到 /www/wwwroot_excluded/ 等非标准目录,并确保它们不在 /www/wwwroot 下,这样“备份所有站点”就不会包含它们。
⚠️ 注意:这会影响网站运行路径,需重新配置站点根目录,操作有风险。
🔔 补充建议
- 宝塔的“备份所有站点”功能会备份
/www/wwwroot下的所有目录。 - 如果某个网站目录暂时不想备份,可以临时重命名或移出
wwwroot(但会影响访问)。 - 建议配合远程备份(如阿里云OSS、腾讯云COS、FTP等)防止本地数据丢失。
总结
| 方法 | 是否支持排除 | 推荐度 |
|---|---|---|
| 自定义脚本 | ✅ 支持 | ⭐⭐⭐⭐⭐ |
| 手动逐个备份 | ✅ 支持 | ⭐⭐⭐ |
| 移动目录避免备份 | ⚠️ 影响运行 | ⭐⭐ |
👉 推荐使用方法一(自定义脚本),灵活、安全、可自动化。
如需,我可以帮你生成完整的脚本并适配你的环境。
云服务器