脚本任务

更新时间:2025-04-23 09:26:34

本文介绍如何在创建任务时通过编写Shell、PythonPhp脚本创建脚本任务。

简介

使用脚本任务的原理如下图所示:

yuque_diagram (1)

  1. 使用脚本任务功能,需要提前在目标设备上部署schedulerx-agent,用来和服务端通信,接收脚本执行命令,返回执行结果。

  2. 需要在执行脚本的设备上,提前部署好脚本运行需要的依赖,例如python依赖库、依赖的文件等。

  3. 每次执行一个脚本,schedulerx-agentfork一个子进程来运行脚本,该子进程不会占用schedulerx-agent的内存,但是会占用部署机器的内存(具体内存消耗量取决于脚本运行内容)。如果同时运行大量脚本任务,则可能导致设备内存不足。如果有运行超大资源脚本的场景,推荐使用K8s任务,通过Pod运行脚本。

前提条件

创建脚本任务

登录MSE SchedulerX控制台,在左侧导航栏的任务管理页面创建任务。配置项中任务类型选择脚本任务

image

步骤一:选择脚本语言

选择脚本语言。当前支持的脚本语言类型:Shell、PythonPhp。

步骤二:执行命令

执行不同脚本语言的命令:

  • 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分片任务

编写脚本

脚本任务创建完成后,会根据脚本语言默认生成脚本模板。可以在任务管理页面,通过编辑脚本修改脚本内容。

image

脚本历史版本

专业版应用,可以使用脚本历史版本功能。在编辑脚本页面,开启历史版本开关,进入历史版本对比页面。

  • 左边为当前版本,右边为历史版本。

  • 单击下拉框可以看到历史版本信息,包含版本说明和创建时间。

  • 修改脚本内容后,单击确定,会提示输入新的版本名称

image

Demo

通过广播任务做分布式处理
通过分片任务做分布式处理
  1. 接入两个schedulerx-agent

    image

  2. 新建脚本语言Shell的脚本任务,执行模式选择广播运行,脚本内容如下:

    image

  3. 单击目标任务操作列下的执行一次

  4. 在左侧导航栏的执行列表中,单击目标任务实例操作列下的日志,查看每个机器执行的内容。

    • 172.16.13.125运行日志如下,可以看到取到的分片序号是1,分片总数是2。

      image

    • 172.16.13.120运行日志如下,可以看到取到的分片序号是0,分片总数是2。

      image

  1. 新建脚本语言Shell的脚本任务,执行模式选择分片运行,其他任务配置如下:

    image

  2. 完成任务创建后,单击目标任务的编辑脚本,脚本内容如下:

    image

  3. 单击目标任务操作列下的执行一次

  4. 在左侧导航栏的执行列表中,单击目标任务实例操作列下的日志,查看每个机器的分片参数。

    • 可以看到172.16.13.120运行了2次,分片参数分别是hangzhoubeijing

    • 172.16.13.125运行了2次,分片参数分别是shenzhenshanghai

    image

相关文档

系统内置参数,请参见脚本任务系统变量的参数及说明

  • 本页导读 (1)
  • 简介
  • 前提条件
  • 创建脚本任务
  • 步骤一:选择脚本语言
  • 步骤二:执行命令
  • 步骤三:文件格式
  • 步骤四:执行模式
  • 编写脚本
  • 脚本历史版本
  • Demo
  • 相关文档
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等