You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写Shell脚本检查PostgreSQL备份状态并发送告警邮件

编写Shell脚本检查PostgreSQL备份状态并发送告警邮件

我帮你整了个实用的Shell脚本,专门用来解析你提供的PostgreSQL备份检查输出,识别异常项并自动发送告警邮件,具体如下:

完整脚本示例

#!/bin/bash

# 替换成实际执行备份检查的命令,比如你用来生成目标输出的检查命令
BACKUP_OUTPUT=$(your_postgres_backup_check_command_here)

# 从输出中筛选所有包含"Failed"的异常条目(忽略大小写)
FAILED_ITEMS=$(echo "$BACKUP_OUTPUT" | grep -i "Failed")

# 配置告警邮件参数,按需修改
ALERT_EMAIL="your-alert-recipient@example.com"
EMAIL_SUBJECT="PostgreSQL Backup Status Notification"

# 判断是否存在异常并发送邮件
if [ -n "$FAILED_ITEMS" ]; then
    # 构造告警邮件内容
    EMAIL_BODY="⚠️ PostgreSQL备份检查发现异常!\n\n异常详情:\n$FAILED_ITEMS\n\n完整检查结果:\n$BACKUP_OUTPUT"
    echo -e "$EMAIL_BODY" | mail -s "$EMAIL_SUBJECT (ALERT)" "$ALERT_EMAIL"
else
    # 可选:全部正常时也发送通知,不需要的话可以删掉这个分支
    EMAIL_BODY="✅ PostgreSQL备份检查全部正常!\n\n完整检查结果:\n$BACKUP_OUTPUT"
    echo -e "$EMAIL_BODY" | mail -s "$EMAIL_SUBJECT (OK)" "$ALERT_EMAIL"
fi

关键细节说明

  • 动态捕获输出:把your_postgres_backup_check_command_here替换成你实际用来生成那段备份检查输出的命令,这样脚本每次运行都能获取最新的状态
  • 异常识别:用grep -i "Failed"忽略大小写匹配异常,确保不会漏掉类似failed的条目
  • 邮件发送:脚本用系统自带的mail命令发邮件,如果你的系统没有这个命令,需要先安装mailutils(Debian/Ubuntu)或者sendmail(RHEL/CentOS)
  • 自定义调整:你可以根据需求修改邮件内容,比如只发送异常项、添加时间戳,或者调整邮件主题

测试小技巧

如果想先测试脚本逻辑,可以把BACKUP_OUTPUT直接替换成你提供的那段测试输出:

BACKUP_OUTPUT="Server standby: PostgreSQL: OK
is_superuser: OK
PostgreSQL streaming: OK
wal_level: Failed
replication slot: OK
directories: OK
retention policy settings: OK
backup maximum age: OK (no last_backup_maximum_age provided)
compression settings: OK
failed backups: OK (there are 0 failed backups)
minimum redundancy requirements: OK (have 96 backups, expected at...)"

内容的提问来源于stack exchange,提问作者Ankit Arora

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:48:48