文档

RunCommand - 一台或多台灵骏机器中执行一段Shell的脚本

更新时间:

一台或多台灵骏机器中执行一段Shell的脚本。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息

当前API暂无授权信息透出。

请求参数

名称类型必填描述示例值
Namestring

命令名称。

testName
Descriptionstring

命令描述。

testDescription
CommandContentstring

命令内容。您需要注意:

  • 指定参数EnableParameter=true可在命令内容中启用自定义参数功能:
  • 用{{}}包含的方式定义自定义参数,在{{}}内参数名前后的空格以及换行符会被忽略。
  • 自定义参数个数不能超过 20 个。
  • 自定义参数名允许 a-zA-Z0-9-_的组合,不支持其余字符,参数名不区分大小写。
  • 单个自定义参数名不能超过 64 字节。
ZWNobyAxMjM=
Timeoutinteger

执行命令的超时时间,单位:秒。当因为进程原因、缺失模块、缺失云助手 Agent 等原因无法运行命令时,会出现超时现象。超时后,会强制终止命令进程。默认值:60。

3600
WorkingDirstring

您可自定义命令的执行路径。默认路径如下:

  • Linux 实例:执行路径默认在管理员 root 用户的/home 目录下。
/home/user
EnableParameterboolean

命令中是否包含自定义参数。

默认值:false。

false
ContentEncodingstring

脚本内容的编码方式。取值范围:

  • PlainText:不编码,采用明文传输。
  • Base64:Base64 编码。

默认值:PlainText。乱填或错填时,该取值会当作 PlainText 处理。

Base64
Usernamestring

在实例中执行命令的用户名称。长度不得超过 255 个字符。 Linux 系统的实例,默认以 root 用户执行命令

root
NodeIdListarray

节点列表。

string

节点 id。

"i-bp185dy2o3o6neg****"
RepeatModestring

设置命令执行的方式。取值范围:

  • Once:立即执行命令。
  • Period:定时执行命令。当该参数取值为Period时,必须同时指定Frequency参数。
  • NextRebootOnly:当实例下一次启动时,自动执行命令。
  • EveryReboot:实例每一次启动都将自动执行命令。

默认值:

  • 当不指定Frequency参数时,默认值为Once
  • 当指定Frequency参数时,无论是否已设置了该参数值,都将按照Period处理。
Once
ClientTokenstring

保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。ClientToken 只支持 ASCII 字符,且不能超过 64 个字符。更多信息,请参见如何保证幂等性。

123e4567-e89b-12d3-a456-426655440000
Frequencystring

定时执行命令的执行时间。目前支持三种定时执行方式:固定时间间隔执行(基于 Rate 表达式)、仅在指定时间执行一次、基于时钟定时执行(基于 Cron 表达式)。

固定时间间隔执行:基于 Rate 表达式,按照设置的时间间隔执行命令。时间间隔支持按秒(s) 、分钟(m) 、小时(h)和天(d)来选择,适用于在固定时间间隔执行任务的场景。格式为 rate(<执行间隔数值><执行间隔单位>),如 5 分钟执行一次,格式为 rate(5m)。使用固定时间间隔执行有以下限制: 设置的时间间隔不大于 7 天、不小于 60 秒,且需大于定时任务的超时时间。 执行间隔只基于固定频率,与任务实际执行需要的时间无关。例如设置每 5 分钟执行一次命令,任务需要 2 分钟执行完成,则在任务完成 3 分钟后继续执行下一轮。 创建任务时不会立即执行。例如设置每 5 分钟执行一次命令,创建任务时不会立即执行一次命令,而是在任务创建完成后的 5 分钟后开始执行。 仅在指定时间执行一次:按照设置的时区和执行时间点执行一次命令。格式为 at(yyyy-MM-dd HH:mm:ss <时区>),即 at(年-月-日 时:分:秒 <时区>)。如果不指定时区,默认为 UTC 时区。时区支持以下三种形式: 时区全称: 如 Asia/Shanghai(中国/上海时间)、America/Los_Angeles(美国/洛杉矶时间)等。 时区相对于格林威治时间的偏移量: 如 GMT+8:00(东八区)、GMT-7:00(西七区)等。使用 GMT 格式时,小时位不支持添加前导零。 时区缩写: 仅支持 UTC(协调世界时间)。

如果指定在中国/上海时间 2022 年 06 月 06 日 13 时 15 分 30 秒执行一次,格式为:at(2022-06-06 13:15:30 Asia/Shanghai);如果指定在西七区 2022 年 06 月 06 日 13 时 15 分 30 秒执行一次,格式为:at(2022-06-06 13:15:30 GMT-7:00)。

基于时钟定时执行(基于 Cron 表达式):基于 Cron 表达式,按照设置的定时任务执行命令。格式为<秒> <分钟> <小时> <日期> <月份> <星期> <年份(可选)> <时区>,即<Cron 表达式> <时区>。在指定的时区下,根据 Cron 表达式推算定时任务执行时间并执行。若不指定时区,默认为执行定时任务实例的系统内部时区。关于 Cron 表达式的更多信息,请参见 Cron 表达式。时区支持以下三种形式: 时区全称: 如 Asia/Shanghai(中国/上海时间)、America/Los_Angeles(美国/洛杉矶时间)等。 时区相对于格林威治时间的偏移量: 如 GMT+8:00(东八区)、GMT-7:00(西七区)等。使用 GMT 格式时,小时位不支持添加前导零。 时区缩写: 仅支持 UTC(协调世界时间)。

例如,在中国/上海时间,2022 年每天上午 10:15 执行一次命令,格式为 0 15 10 ? * * 2022 Asia/Shanghai;在东八区时间,2022 年每天上午 10:00 到 11:30 每隔半小时执行,格式为 0 0/30 10-11 * * ? 2022 GMT+8:00;在 UTC 时间,从 2022 年开始,每隔两年的 10 月每天下午 14:00 到下午 14:55 时间段内每隔 5 分钟执行,格式为 0 0/5 14 * 10 ? 2022/2 UTC。

0 */20 * * * ?
Parametersobject

命令中包含自定义参数时,执行命令时传入的自定义参数的键值对。例如,命令内容为echo {{name}},则可以通过Parameter参数传入键值对{"name":"Jack"}。自定义参数将自动替换变量值name,得到一条新的命令,实际执行的是echo Jack

自定义参数的个数范围为 0~10,且您需要注意:

  • 键不允许为空字符串,最多支持 64 个字符。
  • 值允许为空字符串。
  • 自定义参数与原始命令内容在 Base64 编码后,若保存命令,命令内容在 Base64 编码后的大小不能超过 18 KB;若不保存命令,命令内容在 Base64 编码后的大小不能超过 24 KB。您可通过KeepCommand设置是否保留命令。
  • 设置的自定义参数名集合必须为创建命令时定义的参数集的子集。对于未传入的参数,您可以使用空字符串代替。

默认值为空,表示取消设置该参数从而禁用自定义参数。

{"name":"Jack", "accessKey":"LTAIdyvdIqaRY****"}

返回参数

名称类型描述示例值
object
RequestIdstring

Id of the request

2FE2B22C-CF9D-59DE-BF63-DC9B9B33A9D1
InvokeIdstring

命令执行 ID。

t-7d2a745b412b4601b2d47f6a768d*

示例

正常返回示例

JSON格式

{
  "RequestId": "2FE2B22C-CF9D-59DE-BF63-DC9B9B33A9D1",
  "InvokeId": "t-7d2a745b412b4601b2d47f6a768d*"
}

错误码

访问错误中心查看更多错误码。