
# 同步执行adb命令 - RunSyncCommand
#### 功能介绍
在云手机中同步执行命令并返回命令执行的输出信息，该接口仅支持adb shell命令的执行。1分钟内每个用户调用接口次数上限为6次，每个云手机允许执行命令超时时间为2秒，接口时间不超过30秒，执行云手机数越多，接口耗时相应越长。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/CPH/doc?api=RunSyncCommand)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-cph/cph_api_06000.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                         | 访问级别  | 资源类型（\*为必须） | 条件键                                                                                                                                                                                                                                                                                                                        | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | cph:phones:execSyncCommands | Write | phone       | g:EnterpriseProjectId                                                                                                                                                                                                                                                                                                      | -  | -      |
  | cph:phones:execSyncCommands | Write | server      | - g:EnterpriseProjectId   - g:ResourceTag/\<tag-key\>    | -  | -      |
     
  
 
#### URI
POST /v1/{project_id}/cloud-phone/phones/sync-commands
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述    |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目id。 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                        |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。 通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
   
表3请求Body参数 
| 参数         | 是否必选 | 参数类型             | 描述                                                                                                                       |
|:---|:---|:---|:---|
| command    | 是    | String           | ADB命令，固定填写shell。                                                                                                         |
| content    | 是    | String           | 待执行的命令。 最大长度为2048字节，只支持大小写字母、数字、下划线（_）、点（.）、斜线（/）、冒号（:）、中划线（-）、问号（?）、等号（=）、与（\&）、竖线（\|）。 |
| phone_ids  | 否    | Array of strings | 云手机ID列表。 server_ids参数不存在时必选，同时存在只处理phone_ids。最多支持传入15个phone_id。                          |
| server_ids | 否    | Array of strings | 云手机服务器ID列表。 phone_ids参数不存在时必选，同时存在只处理phone_ids。                                          |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数         | 参数类型                                                                            | 描述         |
|:---|:---|:---|
| request_id | String                                                                          | 请求的唯一标识ID。 |
| jobs       | Array of [RunSyncCommandJob] objects | 任务列表。      |
   
 表5RunSyncCommandJob 
| 参数          | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|
| phone_id    | String  | 云手机的唯一标识，云手机相关任务包含此字段。                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| job_id      | String  | 任务的唯一标识。                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| status      | Integer | 任务状态 - 2：成功   - 1：运行中   - -1：失败    |
| error_code  | String  | 任务错误码。                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| error_msg   | String  | 任务错误码说明。                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| execute_msg | String  | 任务执行返回内容，最长1024字节。                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   
#### 请求示例
向手机列表中的手机同步执行shell命令，命令为ls -l /system
```
POST https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones/sync-commands
{
  "command" : "shell",
  "content" : "ls -l /system",
  "phone_ids" : [ "1234567b8bab40ffb711234cb80d0234", "1678567b8bab40f93711234cb80d0764" ]
}
```
#### 响应示例
**状态码：200**
OK
```
{
  "request_id" : "6837531fd3f54550927b930180a706bf",
  "jobs" : [ {
    "phone_id" : "1234567b8bab40ffb711234cb80d0234",
    "job_id" : "3fc17538866a4ff3a014d8bc6aaa4b69",
    "status" : -1,
    "error_code" : "CPS.0191",
    "error_msg" : "Run command failed.",
    "execute_msg" : "ls: cannot access '/system': No such file or directory"
  }, {
    "phone_id" : "1678567b8bab40f93711234cb80d0764",
    "job_id" : "1564567b8bab40f34711234cb80d5678",
    "status" : 2,
    "error_code" : "",
    "error_msg" : "",
    "execute_msg" : "xxxxx"
  } ]
}
```
#### 状态码
| 状态码 | 描述 |
|:---|:---|
| 200 | OK |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-cph/ErrorCode.html)。
