如何从文件监视器调用Autosys作业?创建触发Autosys作业的文件监视器
用Autosys文件监视器触发作业的实现方法
一、创建Autosys文件监视器作业
Autosys自带FW(File Watcher)类型作业,专门用于监控文件系统。你需要定义以下核心参数:
- 作业类型:必须设为
FW - 监控路径:通过
watch_file指定目标路径,支持通配符(比如/data/incoming/*.csv) - 检查频率:
watch_interval设置检查间隔(单位秒,例:30表示每30秒查一次) - 触发规则:
watch_type:选CREATE(文件创建时触发)、MODIFY(文件修改)或DELETE(文件删除),一般用CREATEfile_size:可选,设置文件最小字节数,避免触发空文件(例:100表示文件至少100字节才触发)
用JIL(Job Information Language)定义作业,示例如下:
insert_job: monitor_incoming_files job_type: FW machine: autosys-agent-host watch_file: /data/incoming/*.csv watch_interval: 30 watch_type: CREATE file_size: 100 owner: autosys_admin permission: gx,wx,mx description: 监控/data/incoming目录下的CSV文件创建事件
提交作业:执行jil < your_job_def.jil即可将定义导入Autosys。
二、配置触发目标Autosys作业
文件监视器触发后,有两种方式启动目标作业:
方式1:通过作业依赖关联
在目标作业的JIL中,用condition参数设置依赖——当文件监视器作业进入SUCCESS状态时,自动启动目标作业。
目标作业JIL示例:
insert_job: process_csv_data job_type: CMD machine: app-server-01 command: /opt/scripts/process_csv.sh owner: autosys_admin condition: s(monitor_incoming_files) description: 文件监视器触发后执行CSV数据处理
方式2:在文件监视器中直接发送触发事件
修改文件监视器的JIL,添加send_event命令,当监视器作业成功时,直接发送启动事件给目标作业:
insert_job: monitor_incoming_files job_type: FW machine: autosys-agent-host watch_file: /data/incoming/*.csv watch_interval: 30 watch_type: CREATE file_size: 100 owner: autosys_admin permission: gx,wx,mx description: 监控文件并触发处理作业 success_exit_code: 0 send_event: sendevent -E STARTJOB -J process_csv_data
三、验证流程
- 提交作业后,用
autorep -J monitor_incoming_files检查文件监视器作业状态,确认处于ACTIVE - 在监控目录下创建符合条件的文件(比如
sample.csv,大小超过100字节) - 等待
watch_interval设定的时间后,再次检查作业状态:autorep -J monitor_incoming_files会显示SUCCESS - 同时查看目标作业状态:
autorep -J process_csv_data,确认已启动或完成
关键注意事项
- 确保Autosys代理服务器对监控路径有读写权限
- 通配符要适配操作系统:Unix/Linux用
*/?,Windows用*/?(注意路径分隔符) watch_interval不要设置过小,避免过度消耗系统资源- 如果需要监控多类文件,可设置多个
watch_file参数,或用更宽泛的通配符
内容的提问来源于stack exchange,提问作者Divy Prakash
相关产品推荐
相关产品推荐

