在ECS管理控制台执行云助手命令与您登录实例后运行命令一样,只有满足所需条件后,命令才会运行成功。建议您在执行命令后查看命令执行结果与状态,确保目标操作已完成。如果执行失败,可以根据常见错误信息定位并修复问题。
背景信息
当出现ECS实例缺乏相关依赖、网络异常、命令语义错误、脚本调试失败或者实例状态异常等情况时,命令会呈现不同的执行状态与执行结果。您可以通过控制台或API查看执行结果中的错误信息、诊断并修复问题。
查看执行结果
通过控制台查看
登录ECS管理控制台。
在左侧导航栏,选择 。
在页面左侧顶部,选择目标资源所在的资源组和地域。
单击命令执行结果页签,查看命令执行结果。
如果命令执行成功,在执行结果中查看输出信息。
找到执行状态为执行成功的命令执行结果。
在操作栏中,单击查看。
在实例列表页面的执行完成页签,查看命令执行结果。
如果命令执行失败,在执行结果中查看错误信息,并根据错误信息诊断和修复问题。
找到执行状态为执行失败的命令执行结果。
在操作栏中,单击查看。
在实例列表页面的执行失败页签,查看执行失败的错误信息。
常见错误信息及修复建议,请参见执行失败常见错误及修复建议。
查看定时执行任务的输出信息。
找到执行状态为等待执行的命令执行结果。
在操作栏中,单击查看。
在实例列表页面,查看命令执行结果。
以下示例为每隔15分钟执行一次的命令执行结果。
通过阿里云CLI查看
阿里云CLI的使用步骤,请参见使用阿里云CLI管理阿里云资源。
从RunCommand或InvokeCommand的返回结果中获取命令执行 ID(InvokeId)。
输入InvokeId和ECS实例的地域ID(RegionId)查询命令的执行结果。下面示例以华东2(上海)地域为例,其他地域的ID请参见地域和可用区。
调用
DescribeInvocations
接口查看命令的执行状态。aliyun ecs DescribeInvocations --RegionId cn-shanghai --InvokeId t-sh054h*****
调用
DescribeInvocationResults
接口查看命令的执行结果。aliyun ecs DescribeInvocationResults --RegionId cn-shanghai --InvokeId t-sh054h******
通过API查看
从RunCommand或InvokeCommand的返回结果中获取命令执行 ID(InvokeId)。
在DescribeInvocations或DescribeInvocationResults中,输入InvokeId和ECS实例的地域ID查询命令的执行结果。
执行失败错误及修复建议
常见错误
错误码 | 错误信息 | 修复建议 |
InstanceNotRunning | 创建任务时,该实例不在运行中。 | 请确认实例是否正常运行。 |
InstanceRestarted | 实例在任务执行期间被重启。 | 请不要在执行任务时重启实例。 |
ClientNotRunning | 云助手Agent未运行。 | 因为云助手Agent已停止或未安装,请按照以下步骤启动或安装云助手Agent。
说明 如果以上操作还未能启动云助手Agent,请重新安装云助手。具体操作,请参见安装云助手Agent。 |
ClientNetworkBlocked | 实例网络环境异常。 |
说明
|
SecurityGroupRuleDenied | 安全组规则拒绝访问云助手服务。 |
|
ClientNotResponse | 云助手Agent未响应。 | 请结合云助手Agent的日志进行排查。
|
ClientNeedUpgrade | 云助手Agent需要升级以支持指定特性。 |
|
ClientNotOnline | 云助手Agent未连接到服务器。 | 请重新启动云助手Agent,具体操作,请参见启动、停止或者卸载云助手Agent。如果重新启动后云助手Agent仍然无法连接到服务器,请提交工单排查。 |
DeliveryTimeout | 云助手服务端向云助手Agent下发任务失败。 | 云助手命令尚未下发到实例中,建议重新执行,如果执行多次还是失败,请提交工单排查。 |
ExecutionTimeout | 命令执行超时。 | 请根据需要延长命令执行超时时间。
|
ExecutionException | 命令执行发生异常。 | 请查看ErrorInfo字段提示的详细错误信息。如果无法通过错误信息定位问题,请提交工单排查。 |
ExitCodeNonzero | 命令执行结束,但命令进程的退出码非0。 | 请检查命令脚本内容以及命令的输出信息。 |
ClientRestarted | 云助手Agent重启导致任务中断。 | 请在重启完成后重新执行。您可以在云助手控制台或调用DescribeCloudAssistantStatus查看云助手Agent运行状态。 |
InstanceReleased | 执行命令期间,实例被释放。 | 执行命令期间实例被释放,无法执行。 |
DirectoryNotExists | 实例内不存在指定的运行目录。 | 请在实例中创建指定的运行目录,再执行命令。 |
执行命令
错误码 | 错误信息 | 修复建议 |
ClientIsUpgrading | 云助手Agent正在升级中。 | 请在升级完成后重新执行。您可以在云助手控制台或调用DescribeCloudAssistantStatus查看云助手Agent运行状态。 |
InstanceDeregistered | 托管实例已经注销。 | 执行命令时托管实例已经注销,无法执行。 |
InvalidSystemBuiltInParameter | 内置环境参数不合法。 | 不支持您指定的内置环境参数,内置环境参数说明,请参见RunCommand中 |
DefaultWorkingDirectoryNotAvailable | 实例中默认的运行目录不可用。 | 请检查实例中默认的运行目录:
您也可以在执行命令时指定运行目录,可通过云助手控制台或RunCommand的 |
CommandNotApplicable | 命令类型不适用于指定的实例。 | 各命令类型支持的实例操作系统如下:
|
InvalidCommandText | 命令内容不合法。 | 请检查命令内容,命令内容可以是明文内容或Base64编码后的内容。 |
CommandContentDecodeError | 命令内容解码失败。 | 若命令内容指定了Base64编码,请检查Base64编码是否正确。 |
AccountNotExists | 实例内不存在指定的用户。 | 请在实例中创建指定的用户后再执行命令。
您也可以在执行命令时指定已存在的其他用户执行命令,可通过云助手控制台或RunCommand的 |
定时执行命令
错误码 | 错误信息 | 修复建议 |
BadCronExpression | 指定的Cron表达式不合法。 | 请修改Cron表达式,更多信息,请参见基于时钟定时执行。 |
CronExpressionExpired | Cron表达式过期,对应的定时任务不会执行。 | 执行命令时请不要指定已过期的Cron表达式。 |
InvalidGMTOffsetForTimezone | Cron表达式中指定的GMT偏移时区格式不合法。 | 请检查GMT偏移时区格式。 支持的GMT范围:GMT-12:59至GMT+14:59,分钟位允许0~59任意值,小时位不支持添加前导零。 |
InvalidGMTOffsetHourForTimezone | Cron表达式中指定的GMT偏移小时值不合法。 | 请检查GMT偏移时区的小时值。 支持的GMT范围:GMT-12:59至GMT+14:59,小时位不支持添加前导零。 |
InvalidGMTOffsetMinuteForTimezone | Cron表达式中指定的GMT偏移分钟值不合法。 | 请检查GMT偏移时区的分钟值。 分钟位允许0~59任意值。 |
TimezoneInformationCorrupt | 由于时区文件损坏等原因,导致云助手Agent无法解析时区信息。 |
说明 若不存在对应的时区文件,请创建正确的时区文件后再执行命令。 |
InvalidRateExpression | Rate表达式不合法。 | 请修改Rate表达式,更多信息,请参见固定时间间隔执行。 |
RateFrequencyTooLarge | Rate表达式中指定的定时执行频率过大 | 定时执行频率不能大于7天。 |
InvalidAtExpression | 时间戳(At表达式)不合法 | 请修改时间戳,更多信息,请参见仅在指定时间执行一次。 |
AtExpressionExpired | 时间戳(At表达式)过期,对应的定时任务不会执行。 | 执行命令时请不要指定已过期的时间戳。 |
在容器内执行命令
错误码 | 错误信息 | 修复建议 |
InvalidContainerName | 容器名称不合法。 | 容器名称必须以数字、字母开头,只能包含数字、大小写字母、特殊字符中的半角句号(.)、下划线(_)、短划线(-),不能超过255个字符。 |
UnsupportedContainerRuntime | 不支持容器ID中包含的容器运行时 | 仅支持由Kubernetes通过CRI规范管理的且在docker、containerd、cri-o容器运行时上运行的容器。 |
InvalidContainerId | 容器ID不合法。 | 仅支持64位16进制字符串,允许存在 |
ContainerConnectFailed | 无法连接到容器。 | 请查看容器是否在运行中,可以使用
|
ContainerStateAbnormal | 容器状态异常。 | 请检查容器状态,只有运行中的容器才能通过云助手执行命令,可以使用 |
ContainerNotFound | 容器不存在 | 请检查对应名称或ID的容器是否存在。 方法一:使用kubectl查看
方法二:使用云助手Agent查看
更多信息,请参见使用云助手在容器内执行命令。 |
ContainerNameDuplicated | 节点存在同名容器,无法识别出待执行命令的容器。 |
|
ContainerNameAndIdNotMatch | 容器ID与容器名称不匹配。 | 您指定的容器ID与容器名称不对应同一个容器,请检查容器ID与容器名称是否正确。 |
非默认用户(System)在Windows实例中执行命令
当以非默认用户(System)在Windows实例中执行命令时可能出现以下问题。
错误码 | 错误信息 | 修复建议 |
UserOrPasswordInvalid | 用户名或密码不正确。 | 用户名称或对应用户的密码不正确。关于用户名称及密码说明,请参见加密参数和设置普通用户执行云助手命令。 |
QueryParameterStoreFailed | 从Parameter Store拉取参数失败。 | 请检查系统运维管理的参数仓库中是否有对应的密码信息,更多信息,请参见加密参数。 |
InstanceRoleInvalid | Instance Role没有被授予给实例。 | 请调用DescribeInstanceRamRole查看实例中是否有对应的RAM角色。 |
停止命令
错误码 | 错误信息 | 修复建议 |
TerminationException | 任务停止失败。 | 请查看ErrorInfo字段提示的详细错误信息,或重试停止任务。 |
发送文件
错误码 | 错误信息 | 修复建议 |
FileAlreadyExists | 相同路径下存在同名文件。 | 您可以通过以下方案解决:
3、修改文件下发目标ECS实例中的路径或名称。 |
FileNameInvalid | 文件名不合法。 | 请调整文件名称以符合Windows或Linux操作系统的文件命名规范。
|
FilePathInvalid | 文件路径不合法。 | 请调整文件路径,以符合Windows或Linux操作系统的文件路径规范。
|
FileAuthorityInvalid | 文件权限不合法。 | 请调整文件权限,只对Linux实例生效,设置方式与chmod命令相同。 |
UserGroupNotExists | 实例内不存在指定的用户组。 | 用户组默认为root。请在Linux实例中创建对应的用户组。 参考命令: |