在宝塔面板中,如果你想设置自动备份所有网站,但又希望排除某些特定网站不参与备份,可以通过以下方法实现:
✅ 方法一:使用计划任务 + 自定义脚本(推荐)
宝塔的默认“备份网站”功能没有直接提供“排除网站”的选项,但你可以通过编写一个自定义脚本,并结合计划任务来实现这个需求。
步骤如下:
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
或直接选择脚本路径(如果支持)
✅ 方法二:手动逐个添加备份任务(适用于网站数量少)
如果你只需要备份大部分网站,而只有少数几个不需要备份,也可以:
- 删除原来的“备份全部网站”的计划任务。
- 手动为每一个需要备份的网站添加一个【备份网站】类型的计划任务。
- 不给那些不想备份的网站添加任务即可。
✅ 方法三:使用第三方插件或脚本(进阶)
有些第三方插件(如阿里云OSS、腾讯云COS上传插件等)也支持高级备份策略。或者你可以使用 Python、PHP 编写更复杂的脚本来调用宝塔 API 实现精确控制。
📌 总结
| 方法 | 是否支持排除 | 推荐程度 | 备注 |
|---|---|---|---|
| 自定义脚本 + 计划任务 | ✅ 支持 | ⭐⭐⭐⭐⭐ | 最灵活,推荐使用 |
| 手动添加备份任务 | ✅ 支持 | ⭐⭐ | 适合站点少的情况 |
| 宝塔默认备份功能 | ❌ 不支持 | ⭐ | 无法排除指定网站 |
如果你告诉我你想排除哪些网站,我可以帮你写好完整的脚本模板。欢迎继续提问!
云知识