向日葵企业CLI帮助指南
更新日期:2026-06-11 19:05:35
欢迎使用向日葵企业CLI!
本手册旨在帮助快速完成 CLI 的安装、配置与上手使用,从而高效、灵活地管理远程设备与远程会话,轻松将远程控制能力融入日常运维与自动化流程。
概述
向日葵CLI 是向日葵基于 MCP(宏指令控制协议)API 实现的命令行主控端版本。无需依赖图形界面,即可在终端中直接调用设备管理、远程桌面控制、文件传输、端口转发等核心功能。凭借轻量化、无交互界面的特性,CLI 尤其适合批量管理、脚本集成与自动化运维场景,有助于大幅提升远程工作效率,降低人工重复操作的成本。
1. 安装 向日葵CLI
1.1 环境要求
在使用 向日葵CLI 之前,请确认操作系统满足以下要求:
操作系统:Windows 7 及以上版本,macOS 10.12 及以上版本,或主流 Linux 发行版(如 Ubuntu、CentOS)。
命令行工具:需具备可用的终端或命令行界面(如 Windows PowerShell、macOS Terminal、Linux Bash)。
网络连接:确保设备可正常访问互联网,以便下载工具并连接向日葵服务。
1.2 下载与安装
方式一:手动安装
在终端中执行 npm install -g @aweray/awesun-cli 安装命令,即可自动完成向日葵CLI 的部署。此方式特别适合在 Trae、Codex 等集成开发环境中直接操作,方便融入现有工作流。
安装完成后,重新开启一个新的终端或命令行窗口,输入以下命令进行验证:awesun-cli --version
若终端正确返回向日葵CLI 的版本号信息,则表示安装已成功,环境准备就绪。
方式二:AI agent工具安装
将向日葵CLI 的安装指令:帮我安装:npm install -g @aweray/awesun-cli” 发送给所支持的 AI Agent 工具(例如 Cursor、Claude Code),AI 助手将自动解析并执行安装步骤。
安装及配置完成后,为确保 CLI 的所有功能模块完整加载并正常生效,需要重启当前使用的 AI Agent 工具。
2. 快速上手
本节介绍向日葵CLI 的基础使用流程,涵盖账号登录、查看已注册设备以及发起远程连接等核心操作,帮助快速建立远程管理能力。
2.1 登录向日葵账号
在使用 向日葵CLI 管理远程设备之前,必须先通过身份认证。向日葵CLI 提供以下两种登录方式,可根据使用场景灵活选择。
方式一:使用用户名登录(推荐)
执行以下命令,系统将提示输入密码:
awesun-cli login --user <用户名>
将 <用户名>替换为实际的 AweSun 账号用户名。
出于安全考虑,密码输入时屏幕不会回显任何字符,只需正确键入密码并按下回车键即可提交。
方式二:扫码登录
执行以下命令,终端将动态生成一个登录二维码:awesun-cli login --qrcode
使用手机 App 的扫一扫功能,扫描终端上的二维码即可完成授权登录。此方式免去手动输入密码的步骤,更加便捷且安全。
提示:登录验证通过后,会话凭证将加密存储于本地。在凭证有效期内,后续执行 CLI 命令时将自动完成鉴权,无需重复登录。
2.2 查看设备列表
登录成功后,可查看当前账号下所有已绑定的设备信息。该列表提供每台设备唯一的远程 ID,是后续发起远程连接、文件传输等操作的必要标识。awesun-cli device ls
执行命令后,终端将以表格形式返回设备清单,示例如下:
+------------+------------------+------------------+--------+
| Device ID | Name | Status | OS |
+------------+------------------+------------------+--------+
| 123456789 | My-Office-PC | Online | Windows|
| 987654321 | Server-Room-01 | Offline | Linux |
+------------+------------------+------------------+--------+
各字段含义如下:
Device ID:设备在向日葵体系中的唯一标识符,在建立远程会话时用作目标地址。
Name:为设备设置的自定义名称,便于快速识别。
Status:设备当前的在线状态。Online 表示设备已连接至向日葵服务并可接受远程连接;Offline 表示设备未上线或网络不可达。
OS:设备所运行的操作系统类型。
2.3 发起远程桌面连接
获取目标设备的远程 ID 后,即可通过向日葵CLI 建立远程桌面会话。以下示例假设要连接的设备 ID 为 123456789:
awesun-cli session connect --type desktop --remote-id 123456789
--type desktop:指定会话类型为远程桌面。
--remote-id:指定目标设备的 Device ID。
执行此命令后,系统会提示输入设备的访问密码。输入正确密码后,远程桌面会话将建立。
提示:会话建立成功后,命令行会返回一个会话 ID(session_id)
例如:session_id=r=123456789;p=desktop;t=desktop;。该 ID 在后续的桌面控制、文件传输等操作中作为会话凭据使用,至关重要。为便于后续调用,建议将其保存为环境变量:
SESSION_ID="r=123456789;p=desktop;t=desktop;"
3. 命令参考
本节提供向日葵 CLI 全部可用命令的详细参考。每条命令均涵盖功能描述、语法格式、选项说明及典型示例,便于快速定位所需功能与用法。
全局选项
以下选项可附加于任意 awesun-cli 命令,用于控制输出格式或调阅帮助信息,其位置通常置于子命令之前。
| 选项 | 简写 | 说明 | 默认值 |
|---|---|---|---|
| --output | -o | 设置输出格式 | table |
| --verbose | -v | 显示详细的输出信息,有助于排查问题 | table |
| --help | -h | 显示命令的帮助信息 | - |
提示:--output 选项支持以下格式,可根据使用场景灵活指定:
table:默认格式,以表格形式呈现,适合直接阅读。
json:输出标准 JSON,便于脚本或自动化工具解析。
yaml:输出 YAML 格式,兼具可读性与结构化特性。
wide:宽表格模式,展示更多详细信息字段。
示例:以 JSON 格式查看设备列表awesun-cli --output json device ls
3.1 账号管理 (login, logout)
awesun-cli login - 登录向日葵账号
用途:登录 向日葵 账号以使用 CLI 工具的各项功能。
语法:
awesun-cli login [选项]
常用选项:
| 选项 | 简写 | 说明 |
|---|---|---|
| --user | - | 指定要登录的用户名,系统会提示输入密码。 |
| --qrcode | - | 在终端显示二维码,使用 AweSun App 扫码登录。 |
典型示例:
# 使用用户名登录
awesun-cli login --user <您的用户名>
# 扫码登录
awesun-cli login --qrcode
awesun-cli logout - 登出当前账号
用途:注销当前已登录的 向日葵 账号。
语法:awesun-cli logout [选项]
常用选项:
| 选项 | 简写 | 说明 |
|---|---|---|
| --clean | - | 登出时清理本地缓存和设置。 |
典型示例:
# 登出当前账号
awesun-cli logout
# 登出并清理本地缓存
awesun-cli logout --clean
3.2 设备管理 (device)
awesun-cli device ls - 列出您的设备
用途:显示您账号下所有已绑定的远程设备列表。
语法:awesun-cli device ls [选项]
常用选项:
| 选项 | 简写 | 说明 | 默认值 |
|---|---|---|---|
| --limit | -l | 限制返回的设备数量。 | 100 |
| --page | -p | 指定页码,从 1 开始。 | 1 |
典型示例:
# 列出所有设备
awesun-cli device ls
# 列出前 10 台设备
awesun-cli device ls --limit 10
# 查看第二页的设备列表
awesun-cli device ls --page 2
awesun-cli device search - 搜索设备
用途:根据关键词搜索您的设备。
语法:
awesun-cli device search <关键词> [选项]
参数:
| 参数 | 说明 |
|---|---|
| <关键词> | 用于搜索设备名称或描述的文本。 |
常用选项:
| 选项 | 简写 | 说明 | 默认值 |
|---|---|---|---|
| --limit | -l | 限制返回的设备数量。 | 100 |
| --page | -p | 指定页码,从 1 开始。 | 1 |
•典型示例:
# 搜索名称或描述中包含“office”的设备
awesun-cli device search "office"
# 搜索名称或描述中包含“test”的设备,并限制返回 20 条
awesun-cli device search "test" --limit 20
awesun-cli device info - 查看设备详情
用途:获取指定设备的详细信息。
语法:
awesun-cli device info <设备ID>
参数:
| 参数 | 说明 |
|---|---|
| <设备ID> | 目标设备的唯一标识符。 |
典型示例:
# 查看设备 ID 为 123456789 的详细信息
awesun-cli device info 123456789
awesun-cli device restart - 远程重启设备
用途:远程重启指定的设备。
语法:
awesun-cli device restart <设备ID> [选项]
参数:
| 参数 | 说明 |
|---|---|
| <设备ID> | 目标设备的唯一标识符。 |
常用选项:
| 选项 | 简写 | 说明 | 必填 |
|---|---|---|---|
| --password | -p | 设备的访问密码或系统密码。如果省略,系统会提示您交互式输入。 | 否 |
| --username | -u | 设备的系统账号。如果指定,系统会提示您输入该账号的系统密码。 | 否 |
密码输入说明:
如果您未提供 --password 和 --username,系统会提示您输入设备的访问密码。
如果您提供了 --username 但未提供 --password,系统会提示您输入该系统账号的密码。
典型示例:
# 重启设备,并交互式输入访问密码
awesun-cli device restart 123456789
# 重启设备,并指定系统账号,然后交互式输入系统密码
awesun-cli device restart 123456789 --username ADMIN
# 重启设备,直接提供访问密码(适用于脚本自动化)
awesun-cli device restart 123456789 --password "your_device_password"
awesun-cli device shutdown - 远程关闭设备
用途:远程关闭指定的设备。
语法:
awesun-cli device shutdown <设备ID> [选项]
参数:
| 参数 | 说明 |
|---|---|
| <设备ID> | 目标设备的唯一标识符。 |
常用选项:
| 选项 | 简写 | 说明 | 必填 |
|---|---|---|---|
| --password | -p | 设备的访问密码或系统密码。如果省略,系统会提示您交互式输入。 | 否 |
| --username | -u | 设备的系统账号。如果指定,系统会提示您输入该账号的系统密码。 | 否 |
密码输入说明:与 device restart 命令的密码输入规则相同。
典型示例:
# 关闭设备,并交互式输入访问密码
awesun-cli device shutdown 123456789
# 关闭设备,直接提供访问密码(适用于脚本自动化)
awesun-cli device shutdown 123456789 --password "your_device_password"
awesun-cli device wakeup - 远程唤醒设备
用途:通过网络唤醒(Wake-on-LAN)功能远程启动处于关机或休眠状态的设备。
语法:
awesun-cli device wakeup <设备ID>
参数:
| 参数 | 说明 |
|---|---|
| <设备ID> | 目标设备的唯一标识符。 |
典型示例:
# 唤醒设备 ID 为 123456789 的设备
awesun-cli device wakeup 123456789
注意:远程唤醒功能需要目标设备支持 Wake-on-LAN 并在 BIOS/UEFI 中启用,同时网络环境也需支持。
3.3 会话控制 (session)
awesun-cli session ls - 列出活跃会话
用途:显示当前所有活跃的远程控制会话。
语法:
awesun-cli session ls [选项]
常用选项:
| 选项 | 简写 | 说明 | 可选值 |
|---|---|---|---|
| --type | -t | 按会话类型筛选 | desktop, file, cmd2, ssh, desktop_view, newcamera, forward |
典型示例:
# 列出所有活跃会话
awesun-cli session ls
# 只列出远程桌面会话
awesun-cli session ls --type desktop
# 只列出文件管理会话
awesun-cli session ls --type file
awesun-cli session connect - 发起远程连接
用途:发起一个新的远程控制会话,支持多种连接类型。
语法:
awesun-cli session connect --type <连接类型> (--remote-id <设备ID> | --fastcode <快码>) [--username <系统账号>]
常用选项:
| 选项 | 说明 | 必填 | 可选值 |
|---|---|---|---|
| --type | 指定远程连接的类型 | 是 | desktop, file, cmd2, ssh, desktop_view, newcamera, forward |
| --remote-id | 目标设备的唯一 ID。与 --fastcode 二选一 | 二选一 | - |
| --fastcode | 目标设备的快码。与 --remote-id 二选一 | 二选一 | - |
| --username | 目标设备的系统账号(仅在 --remote-id 模式下可用) | 否 | - |
连接类型说明:
| 类型 | 说明 |
|---|---|
| desktop | 远程桌面控制 |
| file | 远程文件管理 |
| cmd2 | 远程命令行(CMD/Bash) |
| ssh | 远程 SSH 连接 |
| desktop_view | 远程桌面观看模式(仅观看,无法操作) |
| newcamera | 远程摄像头 |
| forward | 端口转发 |
密码输入说明:
使用 --fastcode 连接时,系统会提示您输入设备的访问密码。
使用 --remote-id 且未指定 --username 时,系统会提示您输入设备的访问密码。
使用 --remote-id 并指定 --username 时,系统会提示您输入该系统账号的密码。
典型示例:
# 通过设备 ID 连接远程桌面
awesun-cli session connect --type desktop --remote-id 123456789
# 通过快码连接远程桌面
awesun-cli session connect --type desktop --fastcode 987654321
# 通过设备 ID 连接远程文件管理
awesun-cli session connect --type file --remote-id 123456789
# 通过设备 ID 连接远程 SSH
awesun-cli session connect --type ssh --remote-id 123456789
awesun-cli session status - 查询会话状态
用途:查询指定远程控制会话的连接状态。
语法:
awesun-cli session status <会话ID>
参数:
| 参数 | 说明 |
|---|---|
| <会话ID> | 目标会话的唯一标识符。 |
典型示例:
# 查询会话 ID 为 "r=123456789;p=desktop;" 的状态
awesun-cli session status "r=123456789;p=desktop;"
awesun-cli session disconnect - 终止会话
用途:终止一个或多个活跃的远程控制会话。
语法:
awesun-cli session disconnect <会话ID>
参数:
| 参数 | 说明 |
|---|---|
| <会话ID> | 目标会话的唯一标识符。 |
典型示例:
# 终止会话 ID 为 "r=123456789;p=desktop;" 的会话
awesun-cli session disconnect "r=123456789;p=desktop;"
awesun-cli session screenshot - 截取会话屏幕
用途:截取指定远程桌面会话的屏幕截图。
语法:
awesun-cli session screenshot <会话ID> [选项]
参数:
| 参数 | 说明 |
|---|---|
| <会话ID> | 目标桌面会话的唯一标识符。 |
常用选项:
| 选项 | 简写 | 说明 |
|---|---|---|
| --output | -o | 截图保存的本地路径和文件名 |
典型示例:
# 截取会话屏幕并保存到当前目录下的 screenshot.png 文件
awesun-cli session screenshot "r=123456789;p=desktop;" --output ./screenshot.png
3.4 远程桌面控制 (desktop)
注意:以下命令仅适用于 desktop 或 desktop_view 类型的活跃会话。所有鼠标操作的坐标均使用 归一化坐标,范围是 [0.0, 1.0],其中 (0.0, 0.0) 是屏幕左上角,(1.0, 1.0) 是屏幕右下角,(0.5, 0.5) 是屏幕中心。
awesun-cli desktop mouse click - 模拟鼠标点击
用途:在远程桌面的指定坐标模拟鼠标点击操作。
语法:
awesun-cli desktop mouse click <会话ID> --x <X坐标> --y <Y坐标> [选项]
参数:
| 参数 | 说明 |
|---|---|
| <会话ID> | 目标桌面会话的唯一标识符。 |
常用选项:
| 选项 | 说明 | 默认值 | 可选值 |
|---|---|---|---|
| --x | 鼠标点击的 X 坐标(归一化) | 必填 | 0.0 到 1.0 之间 |
| --y | 鼠标点击的 Y 坐标(归一化) | 必填 | 0.0 到 1.0 之间 |
| --button | 鼠标按钮 | left | left, right, middle |
| --clicks | 点击次数 | 1 | 1(单击), 2(双击) |
典型示例:
# 在屏幕中心进行左键单击
awesun-cli desktop mouse click "r=123456789;p=desktop;" --x 0.5 --y 0.5
# 在指定位置进行右键双击
awesun-cli desktop mouse click "r=123456789;p=desktop;" --x 0.3 --y 0.4 --button right --clicks 2
awesun-cli desktop mouse move - 移动鼠标
用途:将远程桌面的鼠标指针移动到指定坐标。
语法:
awesun-cli desktop mouse move <会话ID> --x <X坐标> --y <Y坐标>
参数:
| 参数 | 说明 |
|---|---|
| <会话ID> | 目标桌面会话的唯一标识符。 |
常用选项:
| 选项 | 说明 |
|---|---|
| --x | 鼠标移动的 X 坐标(归一化) |
| --y | 鼠标移动的 Y 坐标(归一化) |
典型示例:
# 将鼠标移动到屏幕中心
awesun-cli desktop mouse move "r=123456789;p=desktop;" --x 0.5 --y 0.5
awesun-cli desktop type - 输入文本
用途:在远程桌面模拟键盘输入文本。此命令会逐字符输入,适用于需要模拟用户打字行为的场景。
语法:
awesun-cli desktop type <会话ID> <要输入的文本> [选项]
参数:
| 参数 | 说明 |
|---|---|
| <会话ID> | 目标桌面会话的唯一标识符。 |
| <要输入的文本> | 需要输入的字符串内容。 |
常用选项:
| 选项 | 说明 | 单位 |
|---|---|---|
| --delay | 每个字符输入之间的延迟时间。 | 毫秒 |
典型示例:
# 输入文本“Hello World”
awesun-cli desktop type "r=123456789;p=desktop;" "Hello World"
# 输入文本“Hello World”,每个字符之间延迟 300 毫秒
awesun-cli desktop type "r=123456789;p=desktop;" "Hello World" --delay 300
注意:在使用此命令前,请确保远程桌面上的输入焦点已在目标文本框内。
awesun-cli desktop paste - 粘贴文本
用途:在远程桌面模拟粘贴操作,适用于粘贴较长的文本内容。
语法:
awesun-cli desktop paste <会话ID> <要粘贴的文本>
参数:
| 参数 | 说明 |
|---|---|
| <会话ID> | 目标桌面会话的唯一标识符。 |
| <要粘贴的文本> | 需要粘贴的字符串内容。 |
典型示例:
# 粘贴一段长文本
awesun-cli desktop paste "r=123456789;p=desktop;" "这是一段很长的文本内容,可以用于填充表单或文档。"
注意:在使用此命令前,请确保远程桌面上的输入焦点已在目标文本框内。
awesun-cli desktop key combo - 模拟组合键
用途:在远程桌面模拟按下并释放一组组合键(如 Ctrl+C, Alt+F4)。
语法:
awesun-cli desktop key combo <会话ID> --keys <按键序列> [选项]
参数:
| 参数 | 说明 |
|---|---|
| <会话ID> | 目标桌面会话的唯一标识符。 |
常用选项:
| 选项 | 说明 | 格式 |
|---|---|---|
| --keys | 逗号分隔的按键序列。 | 例如 ctrl,alt,v |
| --delay | 按键之间的延迟时间。 | 毫秒(默认 97 毫秒) |
常用组合键示例:
| 功能 | 命令示例 |
|---|---|
| 复制 | --keys ctrl,c |
| 粘贴 | --keys ctrl,v |
| 剪切 | --keys ctrl,x |
| 全选 | --keys ctrl,a |
| 保存 | --keys ctrl,s |
| 撤销 | --keys ctrl,z |
| 关闭窗口 | --keys alt,F4 |
| 切换应用 | --keys alt,tab |
典型示例:
# 模拟 Ctrl+V 粘贴操作
awesun-cli desktop key combo "r=123456789;p=desktop;" --keys ctrl,v
# 模拟 Ctrl+Shift+Esc 打开任务管理器
awesun-cli desktop key combo "r=123456789;p=desktop;" --keys ctrl,shift,esc
3.5 文件管理 (file)
注意:以下命令仅适用于 file 类型的活跃会话。
awesun-cli file ls - 列出远程文件
用途:列出远程主机指定路径下的文件和文件夹。
语法:
awesun-cli file ls <会话ID> [选项]
参数:
| 参数 | 说明 |
|---|---|
| <会话ID> | 目标文件会话的唯一标识符。 |
常用选项:
| 选项 | 简写 | 说明 | 默认值 |
|---|---|---|---|
| --path | -p | 要列出的远程路径。 | 远程桌面目录 |
| --limit | -l | 限制返回的文件/文件夹数量。 | 100 |
| --keyword | -k | 根据关键词筛选文件/文件夹。 | - |
典型示例:
# 列出远程桌面目录下的文件
awesun-cli file ls "r=123456789;p=file;"
# 列出远程主机指定目录下的文件
awesun-cli file ls "r=123456789;p=file;" --path "/Users/admin/Downloads"
# 在指定目录中搜索包含“report”的文件
awesun-cli file ls "r=123456789;p=file;" --path "/Users/admin" --keyword "report"
awesun-cli file mkdir - 创建远程文件夹
用途:在远程主机上创建新的文件夹。
语法:
awesun-cli file mkdir <会话ID> --path <父级路径> --name <文件夹名称>
参数:
| 参数 | 说明 |
|---|---|
| <会话ID> | 目标文件会话的唯一标识符。 |
常用选项:
| 选项 | 说明 |
|---|---|
| --path | 新文件夹的父级路径。 |
| --name | 新文件夹的名称。 |
典型示例:
# 在远程主机的 Downloads 目录下创建名为 “NewFolder” 的文件夹
awesun-cli file mkdir "r=123456789;p=file;" --path "/Users/admin/Downloads" --name "NewFolder"
awesun-cli file rm - 删除远程文件或文件夹
用途:删除远程主机上的文件或文件夹。
语法:
awesun-cli file rm <会话ID> --path <文件/文件夹路径> [--recursive]
参数:
| 参数 | 说明 |
|---|---|
| <会话ID> | 目标文件会话的唯一标识符。 |
常用选项:
| 选项 | 简写 | 说明 |
|---|---|---|
| --path | - | 要删除的文件或文件夹的完整路径。 |
| --recursive | -r | 如果删除的是文件夹,此选项会递归删除其所有内容。 |
典型示例:
# 删除远程主机上的文件
awesun-cli file rm "r=123456789;p=file;" --path "/Users/admin/file.txt"
# 递归删除远程主机上的文件夹及其所有内容
awesun-cli file rm "r=123456789;p=file;" --path "/Users/admin/OldFolder" --recursive
awesun-cli file mv - 重命名远程文件或文件夹
用途:重命名远程主机上的文件或文件夹。
语法:
awesun-cli file mv <会话ID> --path <原路径> --new-name <新名称>
参数:
| 参数 | 说明 |
|---|---|
| <会话ID> | 目标文件会话的唯一标识符。 |
常用选项:
| 选项 | 说明 |
|---|---|
| --path | 原文件或文件夹的完整路径。 |
| --new-name | 新的文件或文件夹名称(不包含路径)。 |
典型示例:
# 将远程主机上的 old.txt 文件重命名为 new.txt
awesun-cli file mv "r=123456789;p=file;" --path "/Users/admin/old.txt" --new-name "new.txt"
awesun-cli file transfer - 传输文件
用途:在本地和远程主机之间上传或下载文件/文件夹。
语法:
awesun-cli file transfer <会话ID> --type <传输类型> --local <本地路径> --remote <远程路径> [--override]
参数:
| 参数 | 说明 |
|---|---|
| <会话ID> | 目标文件会话的唯一标识符。 |
常用选项:
| 选项 | 说明 | 可选值 |
|---|---|---|
| --type | 传输方向。 | down(下载), up(上传) |
| --local | 本地文件或文件夹的完整路径。 | - |
| --remote | 远程文件或文件夹的完整路径。 | - |
| --override | 如果目标文件已存在,强制覆盖。 | - |
传输类型说明:
| 类型 | 方向 |
|---|---|
| down | 从远程主机下载到本地。 |
| up | 从本地上传到远程主机。 |
典型示例:
# 从远程主机下载文件到本地
awesun-cli file transfer "r=123456789;p=file;" \
--type down \
--remote "C:\\Users\\admin\\Documents\\report.pdf" \
--local "./report.pdf"
# 从本地上传文件到远程主机,并覆盖同名文件
awesun-cli file transfer "r=123456789;p=file;" \
--type up \
--local "./upload.zip" \
--remote "C:\\Users\\admin\\Desktop\\upload.zip" \
--override
awesun-cli file transfer status - 查询传输进度
用途:查询文件传输任务的当前进度。
语法:
awesun-cli file transfer status <会话ID> [--transfer-id <任务ID>]
参数:
| 参数 | 说明 |
|---|---|
| <会话ID> | 目标文件会话的唯一标识符。 |
常用选项:
| 选项 | 说明 |
|---|---|
| --transfer-id | 指定要查询的传输任务 ID。如果省略,将显示所有传输任务的进度。 |
典型示例:
# 查询所有文件传输任务的进度
awesun-cli file transfer status "r=123456789;p=file;"
# 查询指定传输任务的进度
awesun-cli file transfer status "r=123456789;p=file;" --transfer-id "your_transfer_id"
awesun-cli file transfer cancel - 取消传输任务
用途:取消一个或所有正在进行的文件传输任务。
语法:
awesun-cli file transfer cancel <会话ID> [--transfer-id <任务ID>]
参数:
| 参数 | 说明 |
|---|---|
| <会话ID> | 目标文件会话的唯一标识符。 |
常用选项:
| 选项 | 说明 |
|---|---|
| --transfer-id | 指定要取消的传输任务 ID。如果省略,将取消所有传输任务。 |
典型示例:
# 取消指定的文件传输任务
awesun-cli file transfer cancel "r=123456789;p=file;" --transfer-id "your_transfer_id"
# 取消所有文件传输任务
awesun-cli file transfer cancel "r=123456789;p=file;"
3.6 端口转发 (forward)
注意:以下命令仅适用于 forward 类型的活跃会话。
awesun-cli forward config - 配置端口转发规则
用途:为端口转发会话配置具体的转发规则,将远程设备上的端口映射到本地。
语法:
awesun-cli forward config <会话ID> --channels <通道配置>
参数:
| 参数 | 说明 |
|---|---|
| <会话ID> | 目标端口转发会话的唯一标识符。 |
常用选项:
| 选项 | 说明 | 格式 |
|---|---|---|
| --channels | 端口转发通道的配置。 | JSON 数组字符串 |
通道配置格式:
[ { "channel_id": "通道名称", "address": "目标地址", "port": 端口号 } ]
channel_id:为您的转发通道指定一个易于识别的名称。
address:远程设备上要转发的目标 IP 地址(通常是 127.0.0.1 表示远程设备自身)。
port:远程设备上要转发的目标端口号。
典型示例:
# 配置单个端口转发:将远程设备的 22 端口(SSH)转发到本地
awesun-cli forward config "r=123456789;p=forward;" \
--channels '[{"channel_id":"ssh","address":"127.0.0.1","port":22}]'
# 配置多个端口转发:同时转发 SSH (22) 和 Web 服务 (8080)
awesun-cli forward config "r=123456789;p=forward;" \
--channels '[{"channel_id":"ssh","address":"127.0.0.1","port":22},{"channel_id":"web","address":"127.0.0.1","port":8080}]'
3.7 SSH (ssh)
注意:以下命令仅适用于 ssh 类型的活跃会话。
awesun-cli ssh address - 获取 SSH 本地连接地址
用途:获取通过 AweSun CLI 建立的 SSH 会话的本地连接地址,您可以使用标准的 SSH 客户端连接此地址。
语法:
awesun-cli ssh address <会话ID>
参数:
| 参数 | 说明 |
|---|---|
| <会话ID> | 目标 SSH 会话的唯一标识符。 |
典型示例:
# 获取 SSH 本地连接地址
awesun-cli ssh address "r=123456789;p=ssh;"
4. AI Agent 集成
AweSun CLI 作为一个强大的命令行工具,天然支持与 AI Agent(人工智能代理)进行集成,实现自动化、智能化的远程管理和操作。AI Agent 可以通过调用 awesun-cli 命令来执行任务,并通过解析其输出(尤其是 JSON 格式输出)来获取信息并做出决策。
4.1 集成优势
自动化任务:AI Agent 可以自动执行重复性的远程操作,如批量设备巡检、定时文件传输、故障自动重启等。
智能决策:结合 AI Agent 的分析能力,可以根据设备状态、日志信息等自动判断并执行相应的远程操作。
跨平台兼容:AweSun CLI 跨平台特性使得 AI Agent 可以在不同操作系统环境下管理远程设备。
可编程接口:CLI 本身就是一种可编程接口,方便 AI Agent 通过脚本或编程语言进行调用。
4.2 工作原理
AI Agent 通常通过以下步骤与 AweSun CLI 交互:
命令生成:AI Agent 根据其任务目标和当前状态,生成相应的 awesun-cli 命令。
命令执行:AI Agent 在操作系统层面执行 awesun-cli 命令。
结果解析:AI Agent 捕获 awesun-cli 命令的输出。为了便于程序化解析,建议在执行命令时使用 --output json 选项,让 CLI 输出 JSON 格式的结果。
决策与行动:AI Agent 解析 JSON 结果,提取所需信息,并根据这些信息进行下一步的决策,可能包括生成新的 awesun-cli 命令或执行其他操作。
4.3 示例:AI Agent 自动巡检并唤醒离线设备
假设一个 AI Agent 的任务是确保所有关键服务器在线。它可以定期执行以下流程:
列出所有设备并获取状态:
awesun-cli device ls --output json
AI Agent 解析返回的 JSON 列表,查找 Status 为 Offline 的设备。 尝试唤醒离线设备:
如果发现离线设备(例如 Device ID 为 987654321),AI Agent 会尝试唤醒它:
awesun-cli device wakeup 987654321
验证唤醒结果:
等待一段时间后,AI Agent 再次执行 awesun-cli device ls --output json 来验证设备是否已上线。如果设备仍然离线,AI Agent 可能会触发告警或尝试其他恢复措施。
5. 实战场景示例
本节提供了一些 AweSun CLI 在实际工作中的应用场景,帮助您更好地理解和利用其功能。
5.1 自动化运维:批量检查服务器状态
作为运维工程师,您可能需要定期检查多台服务器的运行状态。通过 AweSun CLI,您可以轻松实现自动化。
# 场景:批量检查所有服务器的在线状态,并输出到 CSV 文件
# 1. 登录 AweSun CLI
awesun-cli login --user <您的用户名>
# 2. 获取所有设备列表,并以 JSON 格式输出
# 然后使用 jq 工具提取关键信息并格式化为 CSV
awesun-cli device ls --output json | \
jq -r '(.[] | [.remote_id, .name, .status, .os]) | @csv' > server_status.csv
# server_status.csv 文件内容示例:
# "123456789","My-Office-PC","Online","Windows"
# "987654321","Server-Room-01","Offline","Linux"
# 3. (可选)根据状态进行后续操作,例如唤醒离线设备
# 这里使用简单的 shell 脚本演示,实际可结合更复杂的逻辑
cat server_status.csv | while IFS=',' read -r id name status os;
do
if [[ "$status" == "\"Offline\"" ]]; then
echo "发现离线设备:$name ($id),尝试唤醒..."
awesun-cli device wakeup "$id"
fi
done
提示:jq 是一个轻量级且灵活的命令行 JSON 处理器,非常适合在 shell 脚本中处理 CLI 的 JSON 输出。
5.2 远程技术支持:快速诊断与文件收集
当客户遇到技术问题时,技术支持人员可以使用 向日葵 CLI 快速连接客户设备,进行诊断并收集必要的文件。
# 场景:连接客户桌面,截取错误界面,并下载日志文件
# 1. 登录 AweSun CLI
awesun-cli login --user <您的用户名>
# 2. 连接客户的远程桌面(假设设备 ID 为 123456789)
# 请确保您已获得客户授权和访问密码
SESSION_ID=$(awesun-cli session connect --type desktop --remote-id 123456789 --output json | jq -r '.session_id')
# 3. 截取当前桌面屏幕,保存为诊断截图
awesun-cli session screenshot "$SESSION_ID" --output "./customer_issue_$(date +%Y%m%d%H%M%S).png"
# 4. 切换到文件管理会话(注意:需要重新建立会话,或者使用同一个设备ID建立file会话)
FILE_SESSION_ID=$(awesun-cli session connect --type file --remote-id 123456789 --output json | jq -r '.session_id')
# 5. 下载客户设备上的日志文件(例如:C:\Program Files\App\logs\app.log)
awesun-cli file transfer "$FILE_SESSION_ID" \
--type down \
--remote "C:\\Program Files\\App\\logs\\app.log" \
--local "./customer_app.log"
# 6. 完成操作后,断开所有会话
awesun-cli session disconnect "$SESSION_ID"
awesun-cli session disconnect "$FILE_SESSION_ID"
5.3 批量软件部署与配置
在企业环境中,您可能需要向多台远程设备批量部署软件或修改配置。AweSun CLI 结合脚本可以高效完成此任务。
# 场景:向多台服务器上传配置文件并执行重启服务命令
# 假设您有一个设备 ID 列表文件 devices.txt,每行一个设备 ID
# devices.txt 内容示例:
# 123456789
# 987654321
# 1. 登录 AweSun CLI
awesun-cli login --user <您的用户名>
# 2. 遍历设备列表,对每台设备执行操作
while IFS= read -r DEVICE_ID;
do
echo "正在处理设备:$DEVICE_ID"
# 建立文件管理会话
FILE_SESSION_ID=$(awesun-cli session connect --type file --remote-id "$DEVICE_ID" --output json | jq -r '.session_id')
if [ -z "$FILE_SESSION_ID" ]; then
echo "⚠️ 无法连接到设备 $DEVICE_ID 的文件会话,跳过。"
continue
fi
# 上传新的配置文件
awesun-cli file transfer "$FILE_SESSION_ID" \
--type up \
--local "./new_config.ini" \
--remote "C:\\Program Files\\App\\config.ini" \
--override
# 断开文件会话
awesun-cli session disconnect "$FILE_SESSION_ID"
# 建立命令行会话以执行重启命令
CMD_SESSION_ID=$(awesun-cli session connect --type cmd2 --remote-id "$DEVICE_ID" --output json | jq -r '.session_id')
if [ -z "$CMD_SESSION_ID" ]; then
echo "⚠️ 无法连接到设备 $DEVICE_ID 的命令行会话,跳过重启。"
continue
fi
# 执行重启服务的命令(例如:Windows 服务管理命令)
awesun-cli session exec "$CMD_SESSION_ID" "net stop MyService && net start MyService"
# 断开命令行会话
awesun-cli session disconnect "$CMD_SESSION_ID"
echo "设备 $DEVICE_ID 处理完成。"
echo "---"
done < devices.txt
6. 常见问题与帮助
6.1 环境变量配置
您可以通过配置环境变量来简化 awesun-cli 的使用,例如设置默认输出格式。
配置文件位置:
| 操作系统 | 配置文件路径 |
|---|---|
| Linux/macOS | ~/.config/awesun-cli/config |
| Windows | %APPDATA%\awesun-cli\config |
配置文件示例:
# 在此文件中设置环境变量,例如:
AWESUN_OUTPUT=json
优先级:命令行选项的优先级最高,其次是环境变量,最低是配置文件中的设置。
6.2 错误处理
当 awesun-cli 命令执行失败时,会返回一个非零的退出码,并可能输出错误信息。了解这些退出码有助于您快速定位问题。
常见退出码:
| 退出码 | 说明 |
|---|---|
| 0 | 命令执行成功。 |
| 1 | 通用错误。 |
| 2 | 参数错误。 |
| 3 | API 认证失败。 |
| 4 | 网络连接错误。 |
| 5 | 会话不存在。 |
| 6 | 设备离线。 |
错误输出示例:
{
"code": 401,
"message": "Unauthorized: Invalid API token",
"timestamp": "2026-04-02T12:03:00Z"
}
6.3 获取更多帮助
如果您在使用 向日葵 CLI 过程中遇到任何问题,可以通过以下途径获取帮助:
CLI 内置帮助:使用 --help 选项查看任何命令的详细帮助信息。
# 查看 向日葵-cli 的整体帮助
awesun-cli --help
# 查看 device 子命令的帮助
awesun-cli device --help
# 查看 device ls 命令的帮助
awesun-cli device ls --help



相关问题
其他问题




