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

如何配置单个AutoSys作业同时在多台Unix服务器上运行

实现方案

AutoSys原生直接在单cmd作业的machine字段填写多个主机名默认走负载均衡逻辑,只会挑选一台可用主机运行,要实现单JIL定义下作业在所有指定主机同步执行,有两种成熟实现方式:


方案1:Box作业 + 多机子作业(全版本兼容,最稳定)

该方案不依赖AutoSys高版本特性,通过父Box统一控制调度规则,每个目标服务器对应一个子作业,所有子作业归属同一个Box,Box触发时所有子作业会在各自绑定的主机上同时启动,完全满足多机同步执行需求。所有作业定义可以写在同一个JIL文件中,示例配置如下:

# 父Box作业,统一配置调度规则,子作业自动继承调度属性
insert_job: cleanup_box
job_type: box
description: "统一调度多机日志清理作业"
owner: <user_name>
date_conditions: y
days_of_week: we,sa
start_times: "00:00"
alarm_if_fail: y
alarm_if_terminated: y

# 子作业1:对应第一台服务器
insert_job: cleanup_srv01
job_type: cmd
description: "srv01服务器日志清理"
box_name: cleanup_box
machine: srv01
owner: <user_name>
max_run_alarm: 0
alarm_if_fail: y
alarm_if_terminated: y
command: /test/autosys/cleanup.sh
std_out_file: >> /test/autosys/cleanup_`hostname`_`date +%Y%m%d`.out
std_err_file: >> /test/autosys/cleanup_`hostname`_`date +%Y%m%d`.err

# 子作业2:对应第二台服务器
insert_job: cleanup_srv02
job_type: cmd
description: "srv02服务器日志清理"
box_name: cleanup_box
machine: srv02
owner: <user_name>
max_run_alarm: 0
alarm_if_fail: y
alarm_if_terminated: y
command: /test/autosys/cleanup.sh
std_out_file: >> /test/autosys/cleanup_`hostname`_`date +%Y%m%d`.out
std_err_file: >> /test/autosys/cleanup_`hostname`_`date +%Y%m%d`.err

# 有多少台目标服务器,按照上述子作业格式追加对应配置即可

注意:原有样例配置中的date+%Y%m%d存在语法错误,date命令和+格式参数之间必须加空格,否则执行时会报命令不存在错误。


方案2:开启run_all属性的机器组(适用于AutoSys 11.3.6 SP6及以上版本)

如果你的AutoSys版本满足要求,可以通过创建支持全节点执行的机器组实现,不需要定义多个子作业,配置更简洁:

  1. 首先在JIL中创建机器组(虚拟节点),添加run_all: y参数,指定组内所有主机:
insert_machine: cleanup_all_hosts
type: v
machine: srv01
machine: srv02
machine: srv03
run_all: y
  1. 把清理作业直接绑定到这个机器组即可,作业触发时会自动在组内所有主机上同时运行:
insert_job: cleanup
job_type: cmd
description: "多机日志清理作业"
machine: cleanup_all_hosts
owner: <user_name>
max_run_alarm: 0
alarm_if_fail: y
alarm_if_terminated: y
date_conditions: y
send_notification: n
days_of_week: we,sa
start_times: "00:00"
command: /test/autosys/cleanup.sh 
std_out_file: >> /test/autosys/cleanup_`hostname`_`date +%Y%m%d`.out
std_err_file: >> /test/autosys/cleanup_`hostname`_`date +%Y%m%d`.err

配置注意事项

  • 所有目标服务器必须提前在AutoSys管理器中完成节点注册,且对应节点的AutoSys agent正常运行,否则作业会卡在PENDING状态
  • 若日志输出路径为服务器本地路径,要确保作业执行用户在对应路径下有写入权限
  • 若需要统一汇总所有节点执行结果,可以把std_out、std_err配置到共享存储路径,避免日志散落在各服务器

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 22:36:22