宝塔面板磁盘告警设置,空间不足短信提醒
宝塔面板本身不直接提供磁盘空间不足的短信提醒功能,但你可以通过面板的计划任务、告警通知设置以及第三方短信通道组合实现。
本文面向零基础用户,讲清楚从阈值设定到短信触达的完整配置流程,最终让服务器磁盘使用率超过设定值时自动发短信到你手机。
先确认面板版本和短信通道
不同版本的宝塔面板在告警入口上略有差异,建议先登录面板,在首页右上角查看版本号。
常见的稳定版本在“设置”或“面板设置”中提供“告警通知”选项。
短信提醒需要依赖外部短信服务。
你需要先准备好以下任意一种通道:
- 阿里云短信、腾讯云短信等云厂商的短信 API(需要 AccessKey 和签名模板)
- 第三方告警平台提供的 Webhook 转短信能力
- 自建短信网关或企业微信/钉钉机器人(可间接转发到手机短信)
如果暂时没有短信通道,也可以先用邮件或钉钉告警验证脚本逻辑,再替换为短信接口。
具体短信 API 的签名和模板要求,建议以对应云厂商控制台的实际显示为准。
设置磁盘阈值与告警入口
宝塔面板的告警设置通常位于面板设置或系统监控模块中。
进入路径大致为:面板设置 → 告警通知 或 监控 → 告警设置。
在这里你需要关注两个核心参数:
- 磁盘使用率阈值:建议先设置为 80%,生产环境可适当降低到 75%。
- 告警间隔:避免短时间内重复发送,建议设置为 30 分钟或 1 小时。
如果面板界面中没有直接的短信选项,可以先用邮件告警作为过渡。
邮件告警的配置相对简单,填写 SMTP 服务器、端口、发件邮箱和授权码即可。
判断条件:当磁盘使用率连续两次检测超过阈值时,才触发告警,这样可以过滤掉临时波动。
用计划任务实现空间不足短信提醒
当面板内置告警不支持短信时,最稳妥的方式是写一个检测脚本,通过宝塔的“计划任务”定时执行,脚本中调用短信 API。
在面板左侧菜单进入计划任务,添加一个 Shell 脚本任务,执行周期建议设为每 10 分钟或每 30 分钟。
脚本内容参考如下:
#!/bin/bash
THRESHOLD=80
CURRENT=$(df -h / | awk 'NR==2 {print $5}' | sed 's/%//')
if [ "$CURRENT" -ge "$THRESHOLD" ]; then
# 此处替换为你的短信 API 调用命令
curl -s "https://your-sms-api.example.com/send?phone=13800000000&msg=disk_alert"
fi
把 THRESHOLD 改成你需要的百分比,把 curl 那一行替换成实际短信接口的请求地址和参数。
保存后先手动执行一次,观察是否输出预期结果。
如果使用阿里云短信,通常需要构造签名和模板参数,建议直接在脚本中调用官方 SDK 或使用封装好的命令行工具。
避坑指南:这些细节容易出错
配置过程中有几个高频问题值得提前注意:
- 脚本权限不足:计划任务默认以 root 执行,但如果你手动测试时用的是普通用户,可能读不到磁盘信息。建议统一用 root 测试。
- 短信 API 频率限制:多数云厂商对短信发送有频率限制,脚本中最好加入去重逻辑,比如记录上次发送时间,避免每 10 分钟发一条。
- 阈值设得太低:如果阈值设成 50%,正常业务增长也会频繁触发,反而忽略真正紧急的告警。建议从 80% 开始观察。
- 只监控根分区:如果服务器挂载了多块数据盘,
df -h /只检查根分区。需要同时监控/www或数据盘路径时,脚本中要增加对应的df判断。
另外,宝塔面板自身的日志和缓存也会占用磁盘,定期清理面板日志和网站访问日志能有效降低告警频率。
验证告警是否真正生效
配置完成后不要直接等生产环境触发,建议主动验证一次。
方法一:临时把脚本中的 THRESHOLD 改为一个低于当前使用率的值,手动执行脚本,确认手机能收到短信。
方法二:用 dd 命令临时生成一个大文件占满磁盘,观察告警是否触发,验证后立即删除:
dd if=/dev/zero of=/tmp/testfile bs=1M count=5000
rm -f /tmp/testfile
执行 dd 时要格外小心,确认路径是临时目录,不要写满系统盘导致服务异常。
验证结果:短信收到后,再把阈值改回正常值,并检查计划任务的执行日志,确认没有报错信息。
常见疑问
为什么面板里找不到短信告警选项?
宝塔面板免费版和部分版本的告警功能以邮件为主,短信通常需要借助第三方通道或自定义脚本实现。
建议先确认面板版本,再决定用内置邮件还是外部脚本方案。
脚本执行成功但收不到短信怎么办?
先检查短信 API 的返回内容,确认签名、模板 ID 和手机号格式是否正确。
可以先用 curl -v 查看请求响应,多数问题出在签名错误或模板未审核通过。
磁盘告警和内存告警可以共用同一个脚本吗?
可以,但建议分开判断逻辑。
磁盘用 df,内存用 free,分别设置阈值和短信内容,避免一条短信里信息混杂导致误判。
多久检查一次比较合适?
一般业务服务器建议 10 到 30 分钟检查一次。
频率太高会增加短信成本和系统负载,频率太低可能错过快速写满磁盘的情况。
如果你正在处理宝塔面板磁盘告警设置和空间不足短信提醒,建议先按本文步骤完整执行一遍,再根据自己的服务器数量和短信通道做微调。
遇到异常时优先回看避坑部分,重点检查脚本权限、API 返回和阈值设置。