宝塔设置备份全部网站如何设置排除网站?

在宝塔面板中,设置“备份全部网站”时,如果想排除某些特定网站,目前宝塔面板的自动备份计划功能并没有直接提供“排除网站”的选项。但你可以通过以下几种方法实现类似效果:


✅ 方法一:不使用“备份全部网站”,改为手动选择需要备份的站点(推荐)

  1. 登录宝塔面板。
  2. 进入 计划任务 > 添加计划任务
  3. 选择任务类型为:备份网站
  4. 在“备份目标”中,不要选择“备份所有网站”
  5. 而是手动勾选你需要备份的网站(即:把你想备份的站点一个个选上,排除不想备份的)。
  6. 设置备份周期(如每天、每周等)和保留份数。
  7. 保存即可。

✅ 优点:灵活控制,直接排除不需要备份的网站。
❌ 缺点:如果网站很多,每次新增网站需要手动添加到备份任务中。


✅ 方法二:使用脚本自动备份(高级用户)

你可以编写一个 Shell 脚本,调用宝塔的备份命令,自动遍历网站目录并排除指定站点

示例脚本(排除特定网站目录名):

#!/bin/bash

# 要排除的网站目录(宝塔中网站根目录通常是 /www/wwwroot/xxx)
EXCLUDE_SITES=("test.example.com" "backup-ignore-site" "demo")

# 备份目录
BAK_DIR="/www/backup/exclude_sites"

# 创建备份日志
LOG_FILE="/www/backup/backup_exclude.log"
echo "开始备份网站,$(date)" >> $LOG_FILE

# 进入网站根目录
cd /www/wwwroot || exit

# 遍历所有目录
for dir in */; do
    DIR_NAME=${dir%/}
    SKIP=0

    # 检查是否在排除列表中
    for exclude in "${EXCLUDE_SITES[@]}"; do
        if [ "$DIR_NAME" == "$exclude" ]; then
            SKIP=1
            break
        fi
    done

    # 跳过排除的站点
    if [ $SKIP -eq 1 ]; then
        echo "跳过网站: $DIR_NAME" >> $LOG_FILE
        continue
    fi

    # 调用宝塔备份命令(需确保有权限)
    bt backup site "$DIR_NAME" 1 >> $LOG_FILE 2>&1
    echo "已备份网站: $DIR_NAME" >> $LOG_FILE
done

echo "备份完成!$(date)" >> $LOG_FILE

使用步骤:

  1. 将脚本保存为 /www/backup/backup_exclude.sh
  2. 赋予执行权限:chmod +x /www/backup/backup_exclude.sh
  3. 在宝塔面板中添加计划任务:
    • 类型:Shell 脚本
    • 执行周期:每天/每周等
    • 脚本内容:/bin/bash /www/backup/backup_exclude.sh

✅ 优点:可完全自定义排除逻辑,适合自动化运维。
⚠️ 注意:需确保 bt 命令可用(宝塔自带命令行工具)。


✅ 方法三:利用软链接或符号链接(变通方法)

如果你不想备份某个大站(如静态资源站),可以:

  • 将该网站的数据移到其他分区或目录。
  • /www/wwwroot/ 中用符号链接指向它。
  • 然后在备份时排除该链接或目录。

但此方法较复杂,不推荐普通用户使用。


❌ 宝塔当前限制

宝塔的“备份所有网站”功能无法直接排除指定网站。一旦选择“备份所有网站”,就会包含所有站点,包括后来新增的。


✅ 建议总结

方法 适用人群 是否推荐
手动选择备份站点 普通用户 ✅ 推荐
使用脚本自动排除 高级用户 ✅ 推荐(自动化)
等待宝塔更新支持排除 —— ❌ 未知

如有需要,你也可以在宝塔官方论坛或 GitHub 提交功能建议,请求增加“排除网站”选项。

希望以上方法能帮到你!

未经允许不得转载:CLOUD技术博 » 宝塔设置备份全部网站如何设置排除网站?