如何通过sendevent在Autosys中添加或修改max_run_alarm
关于Autosys作业动态设置max_run_alarm的问题
不能直接通过sendevent命令临时添加或修改作业的max_run_alarm参数。sendevent的核心作用是触发作业的状态变更(启动、暂停、终止等)或发送特定事件,并不支持动态修改作业的配置属性,包括运行时长告警阈值。
以下是几种可行的替代方案:
临时修改作业配置后启动
- 先用
autorep -J <你的作业名> -q导出当前作业的JIL配置 - 编辑导出的配置文件,添加或修改
max_run_alarm: <分钟数>字段 - 执行
jil < <修改后的配置文件>更新作业配置 - 再用
sendevent -E STARTJOB -J <你的作业名>启动作业
注意:作业完成后如果需要恢复原有配置,记得重新调整回去。
- 先用
基于文件大小动态配置告警时长
可以在启动作业前,先计算源目录文件的总大小,再根据预设规则自动设置max_run_alarm,适合长期适配不同文件规模的场景。示例伪脚本如下:# 计算源目录总大小(转换为GB) total_size=$(du -sh /你的源目录 | awk '{print $1}' | sed 's/G//') # 根据大小映射告警时长 if (( $(echo "$total_size > 5" | bc -l) )); then alarm_minutes=30 elif (( $(echo "$total_size > 1" | bc -l) )); then alarm_minutes=10 else alarm_minutes=5 fi # 生成临时JIL更新配置 cat > temp_update.jil << EOF update_job: <你的作业名> max_run_alarm: $alarm_minutes EOF # 更新作业配置并启动 jil < temp_update.jil sendevent -E STARTJOB -J <你的作业名>可以根据实际情况调整大小阈值和对应时长,也可以在作业完成后添加步骤恢复原有配置。
全局默认告警兜底(谨慎使用)
检查Autosys的全局配置,若存在默认max_run_alarm设置,可以启用它作为未单独配置作业的兜底方案。但此设置会影响所有未指定该参数的作业,需评估对其他作业的影响后再操作。
内容的提问来源于stack exchange,提问作者SQL_Beginner
相关产品推荐
相关产品推荐

