赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 云服务器 ECS
  4. 操作指南
  5. 运维与监控
  6. 云助手
  7. 进阶用法
  8. 通过脚本解释器执行云助手命令

通过脚本解释器执行云助手命令

  • 进阶用法
  • 发布于 2025-04-01
  • 0 次阅读
文档编辑
文档编辑

调用云助手API接口(RunCommand/InvokeCommand)可以执行Shell、PowerShell或者Bat类型的脚本。若需要执行其他指定脚本解释器(例如python、kubectl等)的脚本,您可以通过指定CommandContent和Launcher来实现。

前提条件

  • 实例的状态必须为运行中(Running)。

  • 实例已安装云助手Agent,且云助手Agent版本需要高于以下对应的版本。

    • Linux:2.2.3.668

    • Windows:2.1.3.668

使用限制

  • 仅支持实例内已经安装的脚本解释器。

  • 不支持需要输入交互的脚本解释器。

使用方式

调用RunCommand或InvokeCommand执行云助手命令时,指定CommandContent和Launcher参数。

CommandContent参数

CommandContent指准备执行的脚本内容。例如,当用户想要通过云助手执行一段Python脚本时,CommandContent参数需要填写Python脚本的具体内容。

Launcher参数

Launcher支持传递参数到脚本解释器,同时支持在脚本解释器后通过{{ACS::ScriptFileName}}标识符控制脚本文件路径在实际脚本执行命令中的位置。

指定脚本解释器

Launcher参数指定脚本解释器时,根据是否配置脚本解释器的绝对路径在PATH环境变量中,分为以下两种使用方式:

  • 未配置环境变量:您需要在Launcher参数中输入指定脚本解释器的绝对路径。例如,Python脚本解释器路径未配置在PATH环境变量中,Launcher参数设置如下:

    /usr/bin/python
  • 已配置环境变量:您可以在Launcher参数中输入指定脚本解释器名。例如,Python脚本解释器的路径已经配置在PATH环境变量中,则可以直接在Launcher参数中指定为python:

    python

通过标识符指定脚本文件在命令中的位置

  • 未指定标识符

    云助手会在命令末尾添加实际执行的脚本文件路径。例如,Launcher为python,云助手实际在实例内部执行了python <file>,其中 <file>表示脚本内容CommandContent的实际写入文件路径。

  • 通过标识符指定脚本文件在命令中的位置

    针对某些要求脚本文件路径在命令中特定位置的脚本解释器(例如,python解释器要求需要执行的脚本文件路径作为第一个参数),您可以在Launcher参数中,通过{{ACS::ScriptFileName}}标识符指定脚本文件在命令中的位置。例如

    python {{ACS::ScriptFileName}} arg1 arg2

    此时,云助手实际在实例内部执行了 python <file> arg1 arg2,其中 <file>表示脚本内容CommandContent的实际写入文件路径。

  • 通过标识符指定脚本文件后缀名

    针对某些严格要求后缀名的脚本解释器,您可以通过{{ACS::ScriptFileName|Ext(.ext)}}标识符指定脚本文件名的后缀名,例如

    python3 {{ACS::ScriptFileName|Ext(.py)}}

    此时,云助手会将Launcher参数中的{{ACS::ScriptFileName|Ext(.py)}}替换为后缀名为.py的脚本文件路径。云助手实际在实例内部执行了python3 <file>.py ;其中 <file>表示脚本内容CommandContent的实际写入文件路径。

使用场景示例

调用系统内的Python程序执行脚本内容

CommandContent

import datetime
current_date = datetime.date.today()
print(current_date)

Launcher

python {{ACS::ScriptFileName|Ext(.py)}}

调用系统内的kubectl程序执行脚本内容

CommandContent

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
  labels:
    app: my-app
spec:
  containers:
  - name: my-container
    image: nginx
    ports:
    - containerPort: 80

Launcher

kubectl apply -f {{ACS::ScriptFileName|Ext(.yaml)}}

调用regedit执行注册表脚本文件

CommandContent

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Micorsoft\Windows\Persionalization]
"NoLockScreen"=dword:000000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control]
"WaittoKillServiceTimeout"="2000"

Launcher

regedit import {{ACS::ScriptFileName|Ext(.reg)}}

低版本云助手如何使用脚本解释器

当云助手Agent版本低于前提条件中的版本要求时,您可以通过Heredoc机制(仅支持Linux系统)指定脚本解释器,HereDoc机制允许用户在命令行中输入多行文本。

python3 <<EOF
# 这是一个简单的 Python 脚本
import datetime
current_date = datetime.date.today()
print(current_date)
EOF

相关文章

OpenVPN场景添加云助手服务端的IP地址到白名单 2025-04-01 12:00

Windows实例上配置了OpenVPN后,云助手将无法正常运行。在该场景下,您可以通过在OpenVPN中将云助手服务端的IP地址添加到白名单,实现云助手正常使用。 OpenVPN参数介绍

使用云助手在容器内执行命令 2025-04-01 12:00

相比远程连接Linux实例后,在Linux实例上连接容器并执行命令的方式,云助手可以免密码、免登录、无需使用跳板机直接连接Linux容器并执行命令,操作更加简化。您可以在调用云助手API接口(RunCommand或InvokeCommand)时,指定Kubernetes容器信息(ContainerI

在云助手命令中使用OOS参数仓库 2025-04-01 12:00

在云助手命令中使用自定义参数,可以更加灵活地编写脚本,提高命令的复用性。同时,系统运维管理OOS提供参数仓库功能,支持普通参数和加密参数。您可以在云助手命令中结合OOS的参数仓库功能,更为方便和安全地管理自定义参数。

授权RAM用户使用云助手 2025-04-01 12:00

您可以授予RAM用户不同的RAM策略,从而提升或降低RAM用户的权限级别,实现更安全可控的访问,并有效降低阿里云账号AccessKey密钥被泄露的风险。本文介绍了授权步骤,并给出了云助手相关的RAM策略示例。 背景信息 权限策略分为您自行创建的自定义

设置普通用户执行云助手命令 2025-04-01 12:00

使用最小权限执行命令是权限管理的最佳实践,建议您以普通用户身份执行云助手命令。本文介绍如何通过RAM用户的权限控制,实现普通用户(非root或system用户)执行云助手命令。 前提条件 ECS实例中已创建普通用户,本文以普通用户user01、user02为

通过SDK执行命令 2025-04-01 12:00

云助手命令可以在多台ECS实例中批量执行Shell、Bat或者PowerShell脚本。本文介绍如何通过ECS SDK运行云助手命令和查询云助手命令执行结果。 前提条件

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号