云助手命令可以在ECS实例中快速完成运行自动化运维脚本、轮询进程、重置用户密码、安装或卸载软件、更新应用以及安装补丁等一些日常任务。命令类型可以是Windows PowerShell脚本、Bat批处理命令和Linux Shell脚本,命令中支持自定义参数,方便设置变量值。
使用限制
在一个阿里云地域下,您可以保存500~50,000条云助手命令,配额随您的云服务器使用情况可能会增加。您也可以申请提升配额,关于如何查询及提升配额,请参见配额管理。创建命令会占用云助手命令配额。
说明填写详细的配额提升申请理由可提高审批通过率。
创建的脚本在Base64编码后大小不能超过18 KB。
操作步骤
通过控制台创建命令
登录ECS管理控制台。
在左侧导航栏,选择 。
在页面左侧顶部,选择云助手命令所属资源组与所在的地域。
说明设置命令所属的资源组后,您可以在资源组层面对命令进行权限管理,将所需的RAM权限策略加入指定的资源组以实现资源组鉴权。命令相关的RAM权限策略和资源组鉴权说明,请参见云助手命令自定义策略示例和资源分组和授权。
在页面右上角,单击创建/执行命令。
在命令信息区域,设置参数。
名称
描述
命令来源
选择命令来源。
输入命令内容:创建一个新命令。
选择已保存的命令:选择已创建的命令。
命令类型
选择命令类型。
Linux:选择Shell、Python或者Perl。
Windows:选择Bat或者PowerShell。
命令内容
编辑或者粘贴您的命令。
有关Shell命令的示例,请参见查看实例系统配置。
创建命令时,您需要自行测试命令的语法、逻辑或算法是否正确。
例如,假设您已在实例中创建了一个/backup目录(
mkdir /backup
),以下Shell命令将在该目录中归档一个文件。#!/bin/bash OF=/backup/my-backup-$(date +%Y%m%d).tgz tar -cf $OF {{file}}
说明以上示例命令中,
{{file}}
是一个自定义参数,您可以在执行命令时设置为需要归档的目标文件,例如/app/usrcredential。自定义参数能满足动态取值以及一值多用的场景。对于具有安全敏感性的数据以及随环境变化的数据,建议您设置自定义参数,例如AccessKey、实例ID、授权码、时间参数、关键系统文件等。使用参数
选择是否启用参数。
如果您开启了使用参数功能,在命令内容中以
{{key}}
格式设置自定义参数。说明一份云助手命令中的自定义参数不能超过20个。
您可以指定内置环境参数作为自定义参数,执行命令时无需手动对参数赋值,云助手将为您自动替换为环境中对应的值。支持指定以下内置环境参数:
{{ACS::RegionId}}
:地域ID。{{ACS::AccountId}}
:阿里云主账号UID。{{ACS::InstanceId}}
:实例ID。说明命令下发到多个实例时,如需指定
{{ACS::InstanceId}}
作为内置环境参数,需确保安装云助手Agent不低于以下版本:Linux:2.2.3.309
Windows:2.1.3.309
{{ACS::InstanceName}}
:实例名称。说明命令下发到多个实例时,如需指定
{{ACS::InstanceName}}
作为内置环境参数,需确保安装云助手Agent不低于以下版本:Linux:2.2.3.344
Windows:2.1.3.344
{{ACS::InvokeId}}
:命令执行ID。说明如需指定
{{ACS::InvokeId}}
作为内置环境参数,需确保安装云助手Agent不低于以下版本:Linux:2.2.3.309
Windows:2.1.3.309
{{ACS::CommandId}}
:命令ID。说明通过调用RunCommand接口执行命令时,如需指定
{{ACS::CommandId}}
作为内置环境参数,需确保安装云助手Agent不低于以下版本:Linux:2.2.3.309
Windows:2.1.3.309
执行计划
选择命令执行计划。
立即执行:单击执行或执行并保存后,系统立即执行命令。
系统下一次启动后:单击执行或执行并保存后,实例下次启动时执行命令。
系统每次启动后:单击执行或执行并保存后,实例每次启动时执行命令。
定时执行:单击执行或执行并保存后,系统在设置的时间间隔或者时间点执行命令。定时执行包括以下几种方式:
固定时间间隔执行:基于Rate表达式,按照设置的时间间隔执行命令。时间间隔支持按秒、分钟、小时和天来选择,适用于在固定时间间隔执行任务的场景。
说明固定时间间隔执行有以下限制条件:
设置的时间间隔不大于7天、不小于60秒,且需大于定时任务的超时时间。
执行间隔只基于固定频率,与任务实际执行需要的时间无关。例如设置每5分钟执行一次命令,任务需要2分钟执行完成,则在任务完成3分钟后继续执行下一轮。
创建任务时不会立即执行。例如设置每5分钟执行一次命令,创建任务时不会立即执行一次命令,而是在任务创建完成后的5分钟后开始执行。
仅在指定时间执行一次:按照设置的时区和执行时间点执行一次命令。
例如设置执行时间为2022-05-17 17:30:50,时区为(GMT+8:00) Asia/Shanghai,即表示系统会在中国/上海时间,2022年05月17日17点30分50秒执行一次命令。
基于时钟定时执行:基于Cron表达式,按照设置的定时任务执行命令。重复频率可精确到秒、分钟、小时、日期、月份、星期、年份,在指定的时区下,根据Cron表达式推算定时任务执行时间并执行。配置灵活,适用于较复杂的定时任务执行场景。关于Cron表达式的更多信息,请参见Cron表达式。
说明设置的最小时间间隔需大于或等于定时任务的超时时间,且不小于10 秒。
例如设置重复频率为0 0 12 ? * WED 2022,时区为(GMT+8:00) Asia/Shanghai,即表示系统会在中国/上海时间,2022年每个星期三中午12:00执行命令。
命令名称
设置命令名称。
命令描述
设置命令的描述信息。建议设置命令用途等信息,方便后续管理维护。
执行用户
在ECS实例中执行命令的用户名称。
使用最小权限执行命令是权限管理的最佳实践,建议您以普通用户身份执行云助手命令。更多信息,请参见设置普通用户执行云助手命令。
默认情况下,在Linux实例中以root用户执行命令,在Windows实例中以System用户执行命令。
执行路径
自定义命令的执行路径。默认路径如下:
Linux:默认在root用户的/home目录。
Windows:默认在C:\Windows\system32目录。
超时时间
设置命令在实例中的超时时间,当执行命令的任务超时后,云助手将强制终止任务进程。
单位为秒,默认为60秒,最小为10秒。如果您设置的超时时间小于10秒,为确保命令执行成功,会被系统设置为10秒。
标签
设置命令的标签键和标签值,方便后续分类管理维护。
说明当您在选择实例后,单击执行并保存时,系统会同时为命令和命令执行设置标签信息。
当您在选择实例后,单击执行时,系统只会为命令设置标签信息。
在选择实例和选择托管实例区域,选中需要执行命令的目标实例。
说明托管实例是云助手托管的非阿里云服务器,更多信息,请参见阿里云托管实例。
单击保存。
通过CLI创建命令
请求示例
调用CreateCommand接口创建一条名为update的云助手命令,用于更新系统。
aliyun ecs CreateCommand --RegionId 'cn-hangzhou' \
--CommandContent 'eXVtIHVwZGF0ZSAteQ==' \
--Type 'RunShellScript' \
--Name 'update' \
--Description 'update' \
--output cols=CommandId
半角单引号('')内为参数的示例取值,您需要根据实际情况修改。
主要参数说明如下表所示,更多参数说明,请参见CreateCommand。
名称 | 示例 | 描述 |
RegionId | cn-hangzhou | 地域ID。 |
Name | update | 命令名称。 |
Type | RunShellScript | 命令类型。
|
CommandContent | eXVtIHVwZGF0ZSAteQ== | 通过Base64编码后的命令内容。 |
Description | update | 命令的描述信息。 |
返回示例
CommandId
---------
c-hz018qng4on****
后续步骤
创建命令后,您可以在命令列表页签中查看具体信息。如果需要对指定实例执行此命令,请参见执行命令。
如果您创建的命令使用了参数,执行命令时,您需要在命令参数栏中填写参数取值。