通过立即执行命令,您可以同时创建命令和执行命令。
前提条件
- 实例的状态必须为运行中(Running)。
- 在一个阿里云地域下,您可以保存500~10000条云助手命令,配额随您的云服务器使用情况可能会增加。关于如何查询配额,请参见步骤一:查看资源配额。在立即执行命令时,如果您只执行但不保存命令,则不占用云助手命令配额。
说明 您也可以调用API DescribeAccountAttributes,将参数AttributeName.N设置为max-axt-command-count,查询一个地域中云助手命令配额。
- 已安装云助手客户端。具体操作,请参见安装云助手客户端。
使用定时任务的新特性(固定时间间隔执行、仅在指定时间执行一次、基于Cron表达式定时执行时指定年份或时区)时,需确保云助手客户端不低于以下版本:
- Linux:2.2.3.282
- Windows:2.1.3.282
如果执行定时任务结果返回
ClientNeedUpgrade
错误码,请将客户端更新至最新版本。具体操作,请参见升级或禁止升级云助手客户端。
背景信息
立即执行云助手命令时,您需要注意以下事项:
- 创建的脚本在Base64编码后大小说明如下:
- 执行并保存命令:不能超过18 KB。
- 执行但不保存命令:不能超过24 KB。
- 一份云助手命令中的自定义参数不能超过20个。
- 调用API执行命令时最多可以选择50台实例。
- 创建命令时,您需要自行测试命令的语法、逻辑或算法是否正确。
例如,假设您已在实例中创建了一个/backup目录(
mkdir /backup
),以下Shell命令将在该目录中归档一份文件。#!/bin/bash OF=/backup/my-backup-$(date +%Y%m%d).tgz tar -cf $OF {{file}}
说明 以上示例命令中,{{file}}
是一个自定义参数,您可以在执行命令时设置为需要归档的目标文件,例如/app/usrcredential。自定义参数能满足动态取值以及一值多用的场景。对于具有安全敏感性的数据以及随环境变化的数据,建议您设置自定义参数,例如AccessKey、实例ID、授权码、时间参数、关键系统文件等。
控制台操作
CLI示例
单次执行命令示例
- 请求示例:
调用RunCommand接口创建一个名为update的云助手命令,为实例进行系统更新。
aliyun ecs RunCommand --RegionId 'cn-hangzhou' \ --Name 'update' --Username 'root' --Type 'RunShellScript' \ --CommandContent 'eXVtIC15IHVwZGF0ZQ==' \ --Timeout '60' --RepeatMode 'Once' --ContentEncoding 'Base64' \ --InstanceId.1 'i-bp12e0ib2ztibede****'
说明 半角单引号('')内为参数的示例取值,您需要根据实际情况修改。名称 示例 描述 RegionId cn-hangzhou 地域ID。 Name update 命令名称。 Username root 在ECS实例中执行命令的用户名称。 Type RunShellScript 命令类型。 - Linux:RunShellScript
- Windows:RunBatScript或者RunPowerShellScript
CommandContent eXVtIHVwZGF0ZSAteQ== 通过Base64编码后的命令内容。 Timeout 60 超时时间。 RepeatMode Once 执行计划。 ContentEncoding Base64 编码方式。 InstanceId.1 i-bp12e0ib2ztibede**** 需要执行命令的实例ID。 更多信息,请参见RunCommand。
- 返回示例:
{ "CommandId": "c-hz018qlm868****", "InvokeId": "t-hz018qlm86d****", "RequestId": "1D24FA80-64DB-4842-AB20-25207994418F" }
定时执行命令示例
- 请求示例:
调用RunCommand接口创建一个名为update的云助手命令,在中国/上海时间2022年每天中午12:00定时为实例进行系统更新。
aliyun ecs RunCommand --RegionId 'cn-hangzhou' \ --Name 'update' --Description 'update' --Username 'root' --Type 'RunShellScript' \ --CommandContent 'eXVtIC15IHVwZGF0ZQ==' \ --Timeout '60' --RepeatMode 'Period' --ContentEncoding 'Base64' \ --Frequency '0 0 12 * * ? 2022 Asia/Shanghai' \ --InstanceId.1 'i-bp12e0ib2ztibede****'
说明 半角单引号('')内为参数的示例取值,您需要根据实际情况修改。名称 示例 描述 RegionId cn-hangzhou 地域ID。 Name update 命令名称。 Description update 命令描述。 Username root 在ECS实例中执行命令的用户名称。 Type RunShellScript 命令类型。 - Linux:RunShellScript
- Windows:RunBatScript或者RunPowerShellScript
CommandContent eXVtIC15IHVwZGF0ZQ== 通过Base64编码后的命令内容。 Timeout 60 超时时间。 RepeatMode Period 执行计划。 ContentEncoding Base64 编码方式。 Frequency 0 0 12 * * ? 2022 Asia/Shanghai' 定时执行命令的执行周期。 InstanceId.1 i-bp12e0ib2ztibede**** 需要执行命令的实例ID。 更多信息,请参见RunCommand。
- 返回示例:
{ "CommandId": "c-hz018qlm868****", "InvokeId": "t-hz018qlm86d****", "RequestId": "1D24FA80-64DB-4842-AB20-25207994418F" }