如何配置Autosys SQL作业实现特定条件下每小时邮件告警
现有配置的问题
你当前的配置无法实现需求,核心原因有3个:
- 你选的
job_type: SQL类型作业,内置的通知触发逻辑仅绑定作业运行状态(成功、失败、被终止),不会判断SQL返回的业务结果:只要SQL语句执行不抛出数据库错误,作业就会判定为成功,根本不会管查出来的内容是不是你要的特定结果,自然没法做到「符合结果才发邮件」。 - 手动枚举
00:00到23:00的start_times容易出现漏写、格式错误,Autosys有原生的小时级调度参数,不需要手动写全24个时间点。 - SQL类型作业没有内置逻辑分支能力,无法直接对查询结果做条件判断,没法单独实现结果触发通知的逻辑。
可落地的实现方案
最稳妥的方式是把作业类型改成CMD命令类型,用shell脚本封装「SQL执行→结果判断→条件发邮件」的全逻辑,Autosys只负责按小时调度脚本即可,维护成本最低、逻辑可控。
第一步:编写执行脚本
在目标执行机器上新建shell脚本,比如路径为/opt/scripts/hourly_sql_check.sh,赋予执行权限chmod +x /opt/scripts/hourly_sql_check.sh,脚本内容参考:
#!/bin/bash # 提前配置好环境变量,避免Autosys执行时找不到命令 export ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1 # 替换为你机器上的实际Oracle路径 export PATH=$ORACLE_HOME/bin:$PATH # 业务配置 DB_CONN="dbuser/dbpass@your_tns_name" # 替换为实际Oracle连接串 LOG_FILE="/var/log/sql_check/hourly_check.log" RECV_MAIL="ops-team@yourcompany.com" # 替换为实际收件人邮箱 # 你要匹配的特定返回结果,比如查询到异常数据时返回的固定标识 MATCH_KEYWORD="ALERT_TRIGGER" # 静默执行SQL,获取返回结果 SQL_RESULT=$(sqlplus -S $DB_CONN <<EOF SET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFF -- 替换为你实际要执行的SQL语句,建议符合触发条件时返回固定标识,减少判断复杂度 YOUR_ACTUAL_SQL_QUERY; EXIT; EOF ) # 写入执行日志 echo "[$(date '+%Y-%m-%d %H:%M:%S')] SQL执行完成,返回结果: $SQL_RESULT" >> $LOG_FILE # 判断结果是否匹配触发条件 if echo "$SQL_RESULT" | grep -q "$MATCH_KEYWORD"; then # 匹配到结果时发邮件 echo "小时级SQL巡检触发告警,查询返回匹配结果:$SQL_RESULT,详细日志见$LOG_FILE" | mailx -s "【告警】小时SQL检查命中阈值" $RECV_MAIL fi exit 0
第二步:编写Autosys JIL配置
直接用如下配置替换你原来的SQL作业配置即可:
insert_job: hourly_sql_alert_job job_type: CMD machine: xxxx owner: xxxx date_conditions: 1 days_of_week: all start_mins: 0 command: /opt/scripts/hourly_sql_check.sh std_out_file: /var/log/sql_check/autosys_run.log std_err_file: /var/log/sql_check/autosys_err.log max_run_alarm: 10 alarm_if_fail: 1 alarm_if_terminated: 1
补充说明
- 如果你一定要用原生SQL类型作业,需要额外新增一个依赖该SQL作业的CMD作业,SQL作业把结果输出到指定文件后,后置CMD作业去读取文件内容做判断再发邮件,这种方式需要维护两个作业的依赖关系,链路更长,不推荐。
- 提前在执行机器上测试
sqlplus连通性、mailx发信功能正常,避免环境问题导致作业失效。 - 不要依赖SQL作业自带的
send_notification参数,该参数只会按作业状态发通知,只要SQL不报错就会触发成功通知,会产生大量无意义的骚扰邮件。
内容的提问来源于stack exchange,提问作者Rajthilak
相关产品推荐
相关产品推荐

