本文介绍如何在创建任务时通过编写Shell、Python或Php脚本创建脚本任务。
简介
使用脚本任务的原理如下图所示:
使用脚本任务功能,需要提前在目标设备上部署
schedulerx-agent
,用来和服务端通信,接收脚本执行命令,返回执行结果。需要在执行脚本的设备上,提前部署好脚本运行需要的依赖,例如python依赖库、依赖的文件等。
每次执行一个脚本,
schedulerx-agent
会fork
一个子进程来运行脚本,该子进程不会占用schedulerx-agent
的内存,但是会占用部署机器的内存(具体内存消耗量取决于脚本运行内容)。如果同时运行大量脚本任务,则可能导致设备内存不足。如果有运行超大资源脚本的场景,推荐使用K8s任务,通过Pod运行脚本。
前提条件
需要提前部署schedulerxAgent,用于运行脚本。
创建脚本任务
登录MSE SchedulerX控制台,在左侧导航栏的任务管理页面创建任务。配置项中任务类型选择脚本任务。
步骤一:选择脚本语言
选择脚本语言。当前支持的脚本语言类型:Shell、Python和Php。
步骤二:执行命令
执行不同脚本语言的命令:
Shell脚本:默认为
/bin/sh
。Python脚本:默认为
python
,可以自行修改为python2
或者python3
。Php脚本:默认为
php
。
步骤三:文件格式
unix
系统和windows
系统,换行符不同。
如果需要在
Windows
系统上执行脚本,选择windows
。如果需要在
Linux/Unix/Mac
上执行脚本,选择unix
。
当脚本源在Windows
系统,但需在Linux
系统上运行时,文件格式选择unix。
步骤四:执行模式
接入前提:需提前部署schedulerxAgent
,用于运行脚本。具体操作,请参见Agent接入(脚本或HTTP任务)。
执行模式:
单机运行:如果部署了多个Agent,每次随机选择一个Agent运行脚本。
广播运行:如果部署了多个Agent,每次广播所有Agent同时运行脚本,一般用于批量运维。
分片运行:请参见Python分片任务。
编写脚本
脚本任务创建完成后,会根据脚本语言默认生成脚本模板。可以在任务管理页面,通过编辑脚本修改脚本内容。
脚本历史版本
专业版应用,可以使用脚本历史版本功能。在编辑脚本页面,开启历史版本开关,进入历史版本对比页面。
左边为当前版本,右边为历史版本。
单击下拉框可以看到历史版本信息,包含版本说明和创建时间。
修改脚本内容后,单击确定,会提示输入新的版本名称。
Demo
接入两个
schedulerx-agent
。新建脚本语言为Shell的脚本任务,执行模式选择广播运行,脚本内容如下:
单击目标任务操作列下的执行一次。
在左侧导航栏的执行列表中,单击目标任务实例操作列下的日志,查看每个机器执行的内容。
172.16.13.125
运行日志如下,可以看到取到的分片序号是1,分片总数是2。172.16.13.120
运行日志如下,可以看到取到的分片序号是0,分片总数是2。
新建脚本语言为Shell的脚本任务,执行模式选择分片运行,其他任务配置如下:
完成任务创建后,单击目标任务的编辑脚本,脚本内容如下:
单击目标任务操作列下的执行一次。
在左侧导航栏的执行列表中,单击目标任务实例操作列下的日志,查看每个机器的分片参数。
可以看到
172.16.13.120
运行了2次,分片参数分别是hangzhou
和beijing
。172.16.13.125
运行了2次,分片参数分别是shenzhen
和shanghai
。
相关文档
系统内置参数,请参见脚本任务系统变量的参数及说明。
- 本页导读 (1)
- 简介
- 前提条件
- 创建脚本任务
- 步骤一:选择脚本语言
- 步骤二:执行命令
- 步骤三:文件格式
- 步骤四:执行模式
- 编写脚本
- 脚本历史版本
- Demo
- 相关文档