Tul*_*ova 2 postgresql monitoring dump pg-dump
我们希望以编程方式检测 cron 调度的 pg_dumps 中的错误。
除了检查日志文件是否以“pg_dump:保存数据库定义”结尾:
为了以编程方式检查转储,我还可以grep 其他什么字符串。
主要指标是pg_dump
命令的退出状态。如果它不为零,则说明出了点问题,否则它一直有效。这是任何命令和 shell 之间的隐含契约,违反它将会是一个错误。当子命令根本无法启动时,它也是可测试的。
这是 Unix shell 中的一个基本框架,用于测试退出代码并执行相应的操作:
d=`date +%Y%m%d`
dump=/path/to/backups/daily-backup-"$d"
error=/path/to/backups/errors-backup-"$d".txt
pg_dump -U username dbname >$dump 2>$error
code=$?
if [ $code -ne 0 ]; then
echo 1>&2 "The backup failed (exit code $code), check for errors in $error"
fi
Run Code Online (Sandbox Code Playgroud)
有必要将错误消息保存在持久存储中,以便稍后对其进行分析。当根本没有发生错误时,错误文件应该在那里但为空,除非-v
选项但它故意不在上面的脚本中。
关于留言: 保存数据库定义
仅当使用详细 ( -v
) 选项时,它才会与许多其他信息性消息一起显示。问题是,如果出现错误,这些消息将与错误消息混合在一起,并且需要一定程度的专业知识才能区分正常和不正常。