在ECS管理控制台执行云助手命令与您登录实例后运行命令一样,只有满足所需条件后,命令才会运行成功。建议您在执行命令后查看命令执行结果与状态,确保目标操作已完成。如果执行失败,可以根据常见错误信息定位并修复问题。

背景信息

当出现ECS实例缺乏相关依赖、网络异常、命令语义错误、脚本调试失败或者实例状态异常等情况时,命令会呈现不同的执行状态与执行结果。您可以通过控制台或API查看执行结果中的错误信息,诊断并修复问题。

控制台查看执行结果

  1. 登录ECS管理控制台
  2. 在左侧导航栏,选择运维与监控 > 发送命令/文件(云助手)
  3. 在顶部菜单栏左上角处,选择地域。
  4. 单击执行记录页签,查看命令执行结果。
    • 如果命令执行成功,在执行结果中查看输出信息。
      1. 找到执行状态执行完成的目标记录。
      2. 操作栏中,单击查看
      3. 命令执行结果页面,查看任务输出查看执行结果
    • 如果命令执行失败,在执行结果中查看错误信息,并根据错误信息诊断和修复问题。
      1. 找到执行状态执行失败的目标记录。
      2. 操作栏中,单击查看
      3. 命令执行结果页面,查看执行失败的错误信息。

        常见错误信息及修复建议,请参见执行失败常见错误及修复建议

        执行失败错误信息

CLI查看执行结果

如果您通过CLI或OpenAPI使用云助手,可以调用DescribeInvocationsDescribeInvocationResults接口查询云助手命令执行结果。如果执行失败,您可以根据返回值中的ErrorCodeErrorInfo字段了解错误信息。

以下示例介绍如何在CLI中调用DescribeInvocationsDescribeInvocationResults接口。

  • 调用DescribeInvocations接口查看命令执行状态。
    aliyun ecs DescribeInvocations --RegionId TheRegionId --InvokeId your-invoke-id
  • 调用DescribeInvocationResults查看指定实例的命令的实际执行结果。
    aliyun ecs DescribeInvocationResults --RegionId TheRegionId --InstanceId i-bp1g6zv0ce8og******p --InvokeId your-invoke-id

执行失败常见错误及修复建议

错误码 错误信息 修复建议
InstanceNotRunning 创建任务时,该实例不在运行中。 请确认实例是否正常运行。
InstanceRestarted 实例在任务执行期间被重启。 请不要在执行任务时重启实例。
ClientNotRunning 云助手客户端未运行。 因为云助手客户端已停止或未安装,请按照以下步骤启动或安装云助手客户端。
  1. 检查云助手客户端对应进程是否正常运行。
    • Linux:执行以下命令。
      ps -ef |grep aliyun-service
    • Windows:在任务管理器中查看是否存在aliyun_assist_service进程。
  2. 如果进程不存在,则启动云助手客户端。
    • Linux:执行以下命令。
      #Linux系统支持systemctl
      systemctl start aliyun.service
      
      #Linux系统不支持systemctl
      /etc/init.d/aliyun-service start
    • Windows:通过服务管理器启动AliyunService服务。
说明 如果以上操作还未能启动云助手客户端,请重新安装云助手。具体操作,请参见 安装云助手客户端
ClientNetworkBlocked 实例网络环境异常。
  1. 执行以下命令检查网络连通性,如果返回当前实例的ID,则表示网络正常。
    curl https://{region-id}.axt.aliyun.com/luban/api/instance/instance-id
  2. 如果没有返回当前实例的ID,请从安全组、防火墙、DNS设置和路由表等方面排查网络问题。您需要在内网出方向放行TCP 443、TCP 80、UDP 53端口,确保云助手能够内网访问以下地址:
    • https://{region-id}.axt.aliyun.com:443/
    • http://100.100.100.200:80/
    • http://aliyun-client-assist-{region-id}.oss-{region-id}-internal.aliyuncs.com
说明 其中 {region-id}表示实例所在的地域,例如杭州为 cn-hangzhou
ClientNotResponse 云助手客户端未响应。 请结合云助手客户端的日志进行排查。
  1. 打开云助手客户端的日志文件,日志文件默认路径如下所示。
    • Linux:/usr/local/share/aliyun-assist/<云助手版本号>/log/aliyun_assist_main.log
    • Windows:C:\ProgramData\aliyun\assist\<云助手版本号>\log\aliyun_assist_main.log
  2. 查询日志中是否存在对应的命令执行ID。
    • 如果存在此ID,检查上下文中是否有异常信息,例如云助手命令是否执行完毕及是否上报成功。
    • 如果不存在此ID,则重新执行云助手命令。如果重新执行还是失败,则建议重启云助手客户端。
      • Linux系统:执行以下命令。
        #Linux系统支持systemctl
        systemctl restart aliyun.service
        
        #Linux系统不支持systemctl
        /etc/init.d/aliyun-service restart
      • Windows:通过服务管理器启动AliyunService服务。
ClientNeedUpgrade 云助手客户端需要升级。 请启用云助手客户端的自动升级功能,或者手动升级云助手客户端。具体操作,请参见升级或禁止升级云助手客户端
ClientNotOnline 云助手客户端未连接到服务器。 请重新启动云助手客户端,具体操作,请参见停止或启动云助手客户端。如果重新启动后云助手客户端仍然无法连接到服务器,请提交工单排查。
DeliveryTimeout 云助手服务端到客户端下发任务失败。 云助手命令尚未下发到实例中,建议重新执行,如果执行多次还是失败,请提交工单排查。
ExecutionTimeout 命令执行超时。 请根据需要延长命令执行超时时间。
  • 如果在控制台创建并执行命令,超时时间默认为60秒,请设置为适当的值。
  • 如果调用RunCommand执行命令,Timeout默认取值60秒,请设置为适当的值。
  • 如果调用CreateCommand创建命令并调用InvokeCommand执行命令,在创建命令时Timeout默认取值60秒,请在创建命令时设置为适当的值,或者在创建命令后调用ModifyCommand修改为适当的值。
ExecutionException 命令执行发生异常。 请查看ErrorInfo字段提示的详细错误信息。如果无法通过错误信息定位问题,请提交工单排查。
ExitCodeNonzero 命令执行结束,但命令进程的退出码非0。 请检查命令脚本内容以及命令的输出信息。