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

在宝塔面板中,如果你想设置自动备份所有网站,但又希望排除某些特定网站不参与备份,可以通过以下方法实现:


✅ 方法一:使用计划任务 + 自定义脚本(推荐)

宝塔的默认“备份网站”功能没有直接提供“排除网站”的选项,但你可以通过编写一个自定义脚本,并结合计划任务来实现这个需求。

步骤如下:

1. 登录服务器并创建备份脚本

使用 SSH 登录你的服务器,在某个目录下(比如 /www/backup)创建一个脚这里件,例如:

nano /www/backup/custom_backup.sh

然后输入以下内容(请根据实际情况修改):

#!/bin/bash

# 设置要排除的网站目录名(多个用空格分隔)
exclude_sites=("example.com" "test.com")

# 获取所有网站目录列表
sites=(/www/wwwroot/*)

# 遍历所有网站
for site in "${sites[@]}"; do
    # 提取网站名称
    sitename=$(basename "$site")

    # 判断是否在排除列表中
    skip=false
    for exclude in "${exclude_sites[@]}"; do
        if [[ "$sitename" == "$exclude" ]]; then
            skip=true
            echo "跳过网站: $sitename"
            break
        fi
    done

    if [ "$skip" = false ]; then
        echo "正在备份网站: $sitename"
        bt backup site "$sitename"
    fi
done

⚠️ 注意:

  • bt 是宝塔命令行工具,确保你使用的用户有权限执行。
  • 确保脚本路径和网站路径与你的服务器一致。
  • 可以将 bt backup site "$sitename" 替换为自己的压缩备份逻辑,如果需要更复杂的处理。

2. 赋予脚本可执行权限

chmod +x /www/backup/custom_backup.sh

3. 添加计划任务

登录宝塔面板 → 【计划任务】 → 添加任务:

  • 类型:Shell脚本
  • 执行周期:按需设置(如每天凌晨2点)
  • 脚本内容填写:
sh /www/backup/custom_backup.sh

或直接选择脚本路径(如果支持)


✅ 方法二:手动逐个添加备份任务(适用于网站数量少)

如果你只需要备份大部分网站,而只有少数几个不需要备份,也可以:

  1. 删除原来的“备份全部网站”的计划任务。
  2. 手动为每一个需要备份的网站添加一个【备份网站】类型的计划任务。
  3. 不给那些不想备份的网站添加任务即可。

✅ 方法三:使用第三方插件或脚本(进阶)

有些第三方插件(如阿里云OSS、腾讯云COS上传插件等)也支持高级备份策略。或者你可以使用 Python、PHP 编写更复杂的脚本来调用宝塔 API 实现精确控制。


📌 总结

方法 是否支持排除 推荐程度 备注
自定义脚本 + 计划任务 ✅ 支持 ⭐⭐⭐⭐⭐ 最灵活,推荐使用
手动添加备份任务 ✅ 支持 ⭐⭐ 适合站点少的情况
宝塔默认备份功能 ❌ 不支持 无法排除指定网站

如果你告诉我你想排除哪些网站,我可以帮你写好完整的脚本模板。欢迎继续提问!