通过立即执行命令,您可以同时创建命令和执行命令。

前提条件

  • 实例的状态必须为运行中(Running)。
  • 在一个阿里云地域下,您可以保存100条云助手命令,配额随您的云服务器使用情况可能会增加。 在立即执行命令时,如果您仅执行命令,则不占用100条云助手命令配额。
    说明 您也可以调用API DescribeAccountAttributes,将参数AttributeName.N设置为max-axt-command-count,查询一个地域中云助手命令配额。
  • 在一个阿里云地域下,您每天最多能执行5000次云助手命令,配额随您的云服务器使用情况可能会增加。
    说明 您也可以调用API DescribeAccountAttributes,将参数AttributeName.N设置为max-axt-invocation-daily,查询一个地域下单天能运行的云助手命令次数上限。

背景信息

立即执行云助手命令时,您需要注意以下事项。

  • 创建的脚本在Base64编码后大小不能超过16 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、授权码、时间参数、关键系统文件等。

控制台操作

  1. 登录ECS管理控制台
  2. 在左侧导航栏,选择运维与监控 > 发送命令/文件(云助手)
  3. 在顶部菜单栏左上角处,选择地域。
  4. 单击创建/执行命令
  5. 命令信息区域,设置参数。
    名称 描述
    命令来源 选择命令来源。
    • 输入命令内容:创建一个新命令。
    • 选择已有命令:选择已创建的命令。
    命令名称 设置命令名称。
    命令类型 选择命令类型。
    • Linux:选择Shell
    • Windows:选择Bat或者Power Shell
    命令内容 编辑或者粘贴您的命令。

    有关Shell命令的示例,请参见查看实例系统配置

    使用参数 选择是否启用参数。

    如果您开启了使用参数功能,在命令内容中以{{key}}格式设置自定义参数。

    命令参数 设置命令内容{{key}}自定义参数的取值。

    仅在开启了使用参数功能后可设置此参数。

    命令描述 设置命令的描述信息。建议设置命令用途等信息,方便后续管理维护。
    执行用户 在ECS实例中执行命令的用户名称。

    使用最小权限执行命令是权限管理的最佳实践,建议您以普通用户身份执行云助手命令。更多信息,请参见设置普通用户执行云助手命令

    默认情况下,在Linux实例中以root用户执行命令,在Windows实例中以System用户执行命令。

    密码名称 选择托管在运维编排服务中的执行用户密码名称。仅在Windows实例中使用非System用户执行命令时,需要设置此参数。

    如果您没有将执行用户的密码托管在运维编排服务,需要在运维编排服务的参数仓库中创建并托管密码。更多信息,请参见创建加密参数配置Windows实例的普通用户执行云助手命令

    执行路径 自定义命令的执行路径。默认路径如下:
    • Linux:默认在root用户的/home目录。
    • Windows:默认在云助手客户端进程目录,例如,C:\ProgramData\aliyun\assist\$(version)
    超时时间 设置命令在实例中的超时时间,当执行命令的任务超时后,云助手将强制终止任务进程。

    单位为秒,默认为60秒,最小为10秒。如果您设置的超时时间小于10秒,为确保命令执行成功,会被系统设置为10秒。

  6. 选择实例选择托管实例区域,选中需要执行命令的目标实例。
    说明 托管实例是云助手托管的非阿里云服务器,目前仅支持华北2(北京)、华东1(杭州)、华东2(上海)三个地域。更多信息,请参见托管非阿里云服务器
  7. 单击执行并保存执行

CLI示例

  • 请求示例:

    调用RunCommand接口创建一份名为update的云助手命令,为实例进行系统更新。

    aliyun ecs RunCommand --RegionId 'cn-hangzhou' \
    --Name 'update' \
    --Type 'RunShellScript' \
    --CommandContent 'eXVtIHVwZGF0ZSAteQ==' \
    --Timeout '60' \
    --ContentEncoding 'Base64' \
    --InstanceId.1 'i-bp1f4f6o8lv0wqof****'
    名称 示例 描述
    RegionId cn-hangzhou 地域ID。
    Name update 命令名称。
    Type RunShellScript 命令类型。
    • Linux:RunShellScript
    • Windows:RunBatScript或者RunPowershellScript
    CommandContent eXVtIHVwZGF0ZSAteQ== 通过Base64编码后的命令内容。
    Timeout 60 超时时间。
    ContentEncoding Base64 编码方式。
    InstanceId.1 i-bp1f4f6o8lv0wqof**** 需要执行命令的实例ID。

    更多信息,请参见RunCommand

  • 返回示例:
    {
            "CommandId": "c-hz018qlm868****",
            "InvokeId": "t-hz018qlm86d****",
            "RequestId": "1D24FA80-64DB-4842-AB20-25207994418F"
    }