

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Greengrass 命令行界面
<a name="gg-cli"></a>

Greengrass 命令行界面（CLI）允许您在设备上与 AWS IoT Greengrass Core 交互，以便在本地开发组件和调试问题。例如，您可以使用 Greengrass CLI 在核心设备上创建本地部署并重启组件。

部署 [Greengrass CLI](greengrass-cli-component.md) 组件（`aws.greengrass.Cli`），以在核心设备上安装 Greengrass CLI。

**重要**  
 <a name="local-dev-tools-production-environment-warning"></a>我们建议您仅在开发环境中使用此组件，不要在生产环境中使用。此组件允许访问您在生产环境中通常不需要的信息和操作。遵循最低权限原则，将此组件仅部署到有需求的核心设备。

**Topics**
+ [安装 Greengrass CLI](install-gg-cli.md)
+ [Greengrass CLI 命令](gg-cli-reference.md)

# 安装 Greengrass CLI
<a name="install-gg-cli"></a>

您可以通过以下方式之一安装 Greengrass CLI：
+ 首次在设备上设置 AWS IoT Greengrass Core 软件时，请使用该`--deploy-dev-tools`参数。您还必须指定 `--provision true` 才能应用此参数。
+ 在设备上部署 Greengrass CLI 组件（`aws.greengrass.Cli`）。

本节介绍了部署 Greengrass CLI 组件的步骤。有关在初始设置期间安装 Greengrass CLI 的信息，请参阅[教程：AWS IoT Greengrass V2 入门](getting-started.md)。

## 先决条件
<a name="gg-cli-prereqs"></a>

要部署 Greengrass CLI 组件，必须满足以下要求：
+ AWS IoT Greengrass 在您的核心设备上安装并配置了核心软件。有关更多信息，请参阅 [教程：AWS IoT Greengrass V2 入门](getting-started.md)。
+ 要使用部 AWS CLI 署 Greengrass CLI，您必须已安装并配置了。 AWS CLI有关更多信息，请参阅《AWS Command Line Interface 用户指南》**中的[配置 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)。
+ <a name="greengrass-cli-authorization-requirement"></a>您必须获得授权才能使用 Greengrass CLI 与核心软件进行交互。 AWS IoT Greengrass 执行以下任一操作以使用 Greengrass CLI：
  + 使用运行 C AWS IoT Greengrass ore 软件的系统用户。
  + 使用具有根权限或管理员权限的用户。在 Linux 核心设备上，您可以使用 `sudo` 获取根权限。
  + 部署组件时，请使用您在 `AuthorizedPosixGroups` 或 `AuthorizedWindowsGroups` 配置参数中指定的组中的系统用户。有关更多信息，请参阅 [Greengrass CLI 组件配置](greengrass-cli-component.md#greengrass-cli-component-configuration)。

## 部署 Greengrass CLI 组件
<a name="gg-cli-deploy"></a>

请完成以下步骤，将 Greengrass CLI 组件部署到您的核心设备：

### 部署 Greengrass CLI 组件（控制台）
<a name="gg-cli-deploy-console"></a>

1. 登录 [AWS IoT Greengrass 控制台](https://console.aws.amazon.com/greengrass)。

1. 在导航菜单中，选择**组件**。

1. 在**组件**页面的**公有组件**选项卡上，选择 `aws.greengrass.Cli`。

1. 在 **aws.greengrass.Cli** 页面上，选择**部署**。

1. 从**添加到部署**中，选择**创建新部署**。

1. 在**指定目标**页面的**部署目标**下找到**目标名称**列表，从中选择要部署到其中的 Greengrass 组，然后选择**下一步**。

1. 在**选择组件**页面上，确认已选择 **aws.greengrass.Cli** 组件，然后选择**下一步**。

1. 在**配置组件**页面上，保留默认配置设置，然后选择**下一步**。

1. 在**配置高级设置**页面上，保留默认配置设置，然后选择**下一步**。

1. 在**检查**页上，点击**部署**。

### 部署 Greengrass CLI 组件（AWS CLI）
<a name="gg-cli-deploy-cli"></a>

1. 在您的设备上，创建一个定义 Greengrass CLI 组件部署配置的 `deployment.json` 文件。此文件应类似以下内容：

   ```
   {
     "targetArn":"targetArn",
     "components": {
       "aws.greengrass.Cli": {
         "componentVersion": "2.16.1",
         "configurationUpdate": {
           "merge": "{\"AuthorizedPosixGroups\":\"<group1>,<group2>,...,<groupN>\",\"AuthorizedWindowsGroups\":\"<group1>,<group2>,...,<groupN>\"}"
         }
       }
     }
   }
   ```
   + 在 `target` 字段中，按以下格式将 `targetArn` 替换为部署目标的事物或事物组的 Amazon 资源名称（ARN）：
     + 事物：`arn:aws:iot:region:account-id:thing/thingName`
     + 事物组：`arn:aws:iot:region:account-id:thinggroup/thingGroupName`
   + 在 `aws.greengrass.Cli` 组件对象中，按如下方式指定值：  
`version`  
Greengrass CLI 组件的版本。  
`configurationUpdate.AuthorizedPosixGroups`  
（可选）包含以逗号分隔的系统组列表的字符串。您授权这些系统组使用 Greengrass CLI 与核心软件进行交互。 AWS IoT Greengrass 您可以指定组名或群组 IDs。例如，`group1,1002,group3` 授权三个系统组（`group1`、`1002` 和 `group3`）使用 Greengrass CLI。  
如果您未指定要授权的任何群组，则可以以 root 用户 `sudo` () 或运行核心软件的系统用户身份使用 Greengrass CLI。 AWS IoT Greengrass   
`configurationUpdate.AuthorizedWindowsGroups`  
（可选）包含以逗号分隔的系统组列表的字符串。您授权这些系统组使用 Greengrass CLI 与核心软件进行交互。 AWS IoT Greengrass 您可以指定组名或群组 IDs。例如，`group1,1002,group3` 授权三个系统组（`group1`、`1002` 和 `group3`）使用 Greengrass CLI。  
如果您未指定要授权的任何群组，则可以以管理员或运行 Core 软件的系统用户身份使用 Greengrass CLI。 AWS IoT Greengrass 

1. 运行以下命令，在设备上部署 Greengrass CLI 组件：

   ```
   $ aws greengrassv2 create-deployment --cli-input-json file://path/to/deployment.json
   ```

在安装过程中，组件会在设备的 `/greengrass/v2/bin` 文件夹中添加一个指向 `greengrass-cli` 的符号链接，您可以从该路径运行 Greengrass CLI。要在没有绝对路径的情况下运行 Greengrass CLI，请将您的 `/greengrass/v2/bin` 文件夹添加到 PATH 变量中。要验证 Greengrass CLI 的安装情况，请运行以下命令：

------
#### [ Linux or Unix ]

```
/greengrass/v2/bin/greengrass-cli help
```

------
#### [ Windows ]

```
C:\greengrass\v2\bin\greengrass-cli help
```

------

您应看到以下输出：

```
Usage: greengrass-cli [-hV] [--ggcRootPath=<ggcRootPath>] [COMMAND]
Greengrass command line interface

      --ggcRootPath=<ggcRootPath>
                  The AWS IoT Greengrass V2 root directory.
  -h, --help      Show this help message and exit.
  -V, --version   Print version information and exit.
Commands:
  help                Show help information for a command.
  component           Retrieve component information and stop or restart
                        components.
  deployment          Create local deployments and retrieve deployment status.
  logs                Analyze Greengrass logs.
  get-debug-password  Generate a password for use with the HTTP debug view
                        component.
```

如果未找到 `greengrass-cli`，则部署可能无法安装 Greengrass CLI。有关更多信息，请参阅 [故障排除 AWS IoT Greengrass V2](troubleshooting.md)。

# Greengrass CLI 命令
<a name="gg-cli-reference"></a>

Greengrass CLI 提供了一个命令行界面，用于在本地与 AWS IoT Greengrass 核心设备进行交互。Greengrass CLI 命令使用以下格式。

```
$ greengrass-cli <command> <subcommand> [arguments]
```

默认情况下，`/greengrass/v2/bin/` 文件夹中的 `greengrass-cli` 可执行文件与在 `/greengrass/v2` 文件夹中运行的 AWS IoT Greengrass Core 软件版本进行交互。如果您调用未放置在此位置的可执行文件，或者您想在其它位置与 AWS IoT Greengrass Core 软件进行交互，则必须使用以下方法之一来明确指定要与之交互的 AWS IoT Greengrass Core 软件的根路径：<a name="greengrass-cli-set-root-path"></a>
+ 将 `GGC_ROOT_PATH` 环境变量设置为 `/greengrass/v2`。
+ 将 `--ggcRootPath /greengrass/v2` 参数添加到您的命令中，如以下示例所示。

  ```
  greengrass-cli --ggcRootPath /greengrass/v2 <command> <subcommand> [arguments]
  ```

您可以将以下参数与任何命令一起使用：
+ 使用 `--help` 获取有关特定 Greengrass CLI 命令的信息。
+ 使用 `--version` 获取有关 Greengrass CLI 版本的信息。

本节介绍了 Greengrass CLI 命令并提供了这些命令的示例。每个命令的摘要显示了命令的参数及其用法。可选参数在方括号中显示。

**Topics**
+ [组件](gg-cli-component.md)
+ [后](gg-cli-deployment.md)
+ [日志](gg-cli-logs.md)
+ [get-debug-password](gg-cli-get-debug-password.md)

# 组件
<a name="gg-cli-component"></a>

使用 `component` 命令与核心设备上的本地组件进行交互。

**子命令**
+ [details](#component-details)
+ [列表](#component-list)
+ [重新开始](#component-restart)
+ [stop](#component-stop)

## details
<a name="component-details"></a>

检索一个组件的版本、状态和配置。

**摘要**  

```
greengrass-cli component details --name <component-name> 
```

**参数**：  
`--name`，`-n`。组件类型名称。

**输出**：  
下面的示例显示运行此命令时产生的输出。  

```
$ sudo greengrass-cli component details --name MyComponent 

Component Name: MyComponent 
Version: 1.0.0
State: RUNNING
Configuration: null
```

## 列表
<a name="component-list"></a>

检索设备上安装的每个组件的名称、版本、状态和配置。

**摘要**  

```
greengrass-cli component list
```

**参数**：  
无

**输出**：  
下面的示例显示运行此命令时产生的输出。  

```
$ sudo greengrass-cli component list

Components currently running in Greengrass:
Component Name: FleetStatusService
Version: 0.0.0
State: RUNNING
Configuration: {"periodicUpdateIntervalSec":86400.0}
Component Name: UpdateSystemPolicyService
Version: 0.0.0
State: RUNNING
Configuration: null
Component Name: aws.greengrass.Nucleus
Version: 2.0.0
State: FINISHED
Configuration: {"awsRegion":"region","runWithDefault":{"posixUser":"ggc_user:ggc_group"},"telemetry":{}}
Component Name: DeploymentService
Version: 0.0.0
State: RUNNING
Configuration: null
Component Name: TelemetryAgent
Version: 0.0.0
State: RUNNING
Configuration: null
Component Name: aws.greengrass.Cli
Version: 2.0.0
State: RUNNING
Configuration: {"AuthorizedPosixGroups":"ggc_user"}
```

## 重新开始
<a name="component-restart"></a>

重新启动组件。

**摘要**  

```
greengrass-cli component restart --names <component-name>,...
```

**参数**：  
`--names`，`-n`。组件类型名称。至少需要一个组件名称。您可以指定其它组件名称，用逗号分隔每个名称。

**输出**：  
无

## stop
<a name="component-stop"></a>

停止运行组件。

**摘要**  

```
greengrass-cli component stop --names <component-name>,...
```

**参数**：  
`--names`，`-n`。组件类型名称。至少需要一个组件名称。如果需要，您可以指定其它组件名称，用逗号分隔每个名称。

**输出**：  
无

# 后
<a name="gg-cli-deployment"></a>

使用 `deployment` 命令与核心设备上的本地组件进行交互。

要监控本地部署的进度，请使用 `status` 子命令。您无法使用控制台监控本地部署的进度。

**子命令**
+ [创建](#deployment-create)
+ [取消](#deployment-cancel)
+ [列表](#deployment-list)
+ [状态](#deployment-status)

## 创建
<a name="deployment-create"></a>

使用指定的组件配方、构件和运行时参数创建或更新本地部署。

**摘要**  

```
greengrass-cli deployment create 
    --recipeDir path/to/component/recipe
    [--artifactDir path/to/artifact/folder ]
    [--update-config {component-configuration}]
    [--groupId <thing-group>]
    [--merge "<component-name>=<component-version>"]...
    [--runWith "<component-name>:posixUser=<user-name>[:<group-name>]"]...
    [--systemLimits "{component-system-resource-limits}]"]...
    [--remove <component-name>,...]
    [--failure-handling-policy <policy name[ROLLBACK, DO_NOTHING]>]
```

**参数**：  
+ `--recipeDir`，`-r`。包含组件配方文件的文件夹的完整路径。
+ `--artifactDir`，`-a`。包含构件文件（您要在部署中包含的构件）的文件夹的完整路径。构件文件夹必须包含以下目录结构：

  ```
  /path/to/artifact/folder/<component-name>/<component-version>/<artifacts>
  ```
+ `--update-config`，`-c`。部署的配置参数，以 JSON 字符串或 JSON 文件形式提供。JSON 字符串应采用以下格式：

  ```
  { \
    "componentName": { \ 
      "MERGE": {"config-key": "config-value"}, \
      "RESET": ["path/to/reset/"] \
    } \
  }
  ```

  `MERGE` 和 `RESET` 区分大小写，且必须大写。
+ `--groupId`，`-g`。部署的目标事物组。
+ `--merge`，`-m`。要添加或更新的目标组件的名称和版本。必须以 `<component>=<version>` 格式提供组件信息。每个要指定的其它组件均需使用单独的参数。如果需要，可使用 `--runWith` 参数提供运行组件的 `posixUser`、`posixGroup` 和 `windowsUser` 信息。
+ `--runWith`。运行通用或 Lambda 组件的 `posixUser`、`posixGroup` 和 `windowsUser` 信息。必须以 `<component>:{posixUser|windowsUser}=<user>[:<=posixGroup>]` 格式提供此信息。例如，您可以指定 **HelloWorld:posixUser=ggc\$1user:ggc\$1group** 或 **HelloWorld:windowsUser=ggc\$1user**。每个要指定的其它选项均需使用单独的参数。

  有关更多信息，请参阅 [配置运行组件的用户](configure-greengrass-core-v2.md#configure-component-user)。
+ `--systemLimits`。应用于核心设备上通用和非容器化 Lambda 组件进程的系统资源限制。您可以配置每个组件进程可使用的最大 CPU 和 RAM 使用量。指定序列化 JSON 对象或 JSON 文件的文件路径。JSON 对象必须具有以下格式。

  ```
  {  \
    "componentName": { \ 
      "cpus": cpuTimeLimit, \
      "memory": memoryLimitInKb \
    } \
  }
  ```

  您可以为每个组件配置以下系统资源限制：
  + `cpus` – <a name="system-resource-limits-cpu-definition-this"></a>此组件进程可在核心设备上使用的最大 CPU 时间。核心设备的总 CPU 时间等于 CPU 核心的设备数量。例如，在一台有 4 个 CPU 核心的核心设备上，您可以将此值设置为 `2`，以便将此组件进程限制为使用每个 CPU 核心的 50%。在一台有 1 个 CPU 核心的设备上，您可以将此值设置为 `0.25`，以便将此组件进程限制为使用 CPU 的 25%。如果您将此值设置为大于 CPU 核心数量的数字，AWS IoT Greengrass 核心软件不会限制组件的 CPU 使用。
  + `memory` – <a name="system-resource-limits-memory-definition-this"></a>此组件进程可在核心设备上使用的最大 RAM 数量（以千字节表示）。

  有关更多信息，请参阅 [配置组件的系统资源限制](configure-greengrass-core-v2.md#configure-component-system-resource-limits)。

  此功能适用于 Linux 核心设备上的 [Greengrass Nucleus 组件](greengrass-nucleus-component.md) v2.4.0 及更高版本和 Greengrass CLI。AWS IoT Greengrass 目前不支持在 Windows 核心设备上使用此功能。
+ `--remove`。要从本地部署中移除的目标组件的名称。要移除从云部署中合并的组件，必须按以下格式提供目标事物组的组 ID：

------
#### [ Greengrass nucleus v2.4.0 and later ]

  ```
  --remove <component-name> --groupId <group-name>
  ```

------
#### [ Earlier than v2.4.0 ]

  ```
  --remove <component-name> --groupId thinggroup/<group-name>
  ```

------
+ `--failure-handling-policy`。定义部署失败时采取的操作。您可以指定两个操作：
  + `ROLLBACK` – 
  + `DO_NOTHING` – 

  此功能适用于 [Greengrass Nucleus](greengrass-nucleus-component.md) v2.11.0 及更高版本。

**输出**：  
下面的示例显示运行此命令时产生的输出。  

```
$ sudo greengrass-cli deployment create \
    --merge MyApp1=1.0.0 \
    --merge MyApp2=1.0.0 --runWith MyApp2:posixUser=ggc_user \
    --remove MyApp3 \
    --recipeDir recipes/ \ 
    --artifactDir artifacts/

Local deployment has been submitted! Deployment Id: 44d89f46-1a29-4044-ad89-5151213dfcbc
```

## 取消
<a name="deployment-cancel"></a>

取消指定的部署。

摘要  

```
greengrass-cli deployment cancel
    -i <deployment-id>
```

参数  
`-i`。要取消的部署的唯一标识符。部署 ID 会在 `create` 命令的输出中返回。

输出  
+ 无

## 列表
<a name="deployment-list"></a>

检索最近 10 次本地部署的状态。

**摘要**  

```
greengrass-cli deployment list
```

**参数**：  
无

**输出**：  
下面的示例显示运行此命令时产生的输出。根据您的部署状态，输出会显示以下状态值之一：`IN_PROGRESS`、`SUCCEEDED` 或 `FAILED`。  

```
$ sudo greengrass-cli deployment list

44d89f46-1a29-4044-ad89-5151213dfcbc: SUCCEEDED
Created on: 6/27/23 11:05 AM
```

## 状态
<a name="deployment-status"></a>

检索特定部署的状态。

**摘要**  

```
greengrass-cli deployment status -i <deployment-id>
```

**参数**：  
`-i`。部署的 ID。

**输出**：  
下面的示例显示运行此命令时产生的输出。根据您的部署状态，输出会显示以下状态值之一：`IN_PROGRESS`、`SUCCEEDED` 或 `FAILED`。  

```
$ sudo greengrass-cli deployment status -i 44d89f46-1a29-4044-ad89-5151213dfcbc

44d89f46-1a29-4044-ad89-5151213dfcbc: FAILED
Created on: 6/27/23 11:05 AM
Detailed Status: <Detailed deployment status>
Deployment Error Stack: List of error codes
Deployment Error Types: List of error types
Failure Cause: Cause
```

# 日志
<a name="gg-cli-logs"></a>

使用 `logs` 命令分析核心设备上的 Greengrass 日志。

**子命令**
+ [get](#logs-get)
+ [list-keywords](#logs-list-keywords)
+ [list-log-files](#logs-list-log-files)

## get
<a name="logs-get"></a>

收集、筛选和可视化 Greengrass 日志文件。此命令仅支持 JSON 格式的日志文件。您可以在核心配置中指定[日志记录格式](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-logging-format)。

**摘要**  

```
greengrass-cli logs get
    [--log-dir path/to/a/log/folder]
    [--log-file path/to/a/log/file]
    [--follow true | false ]
    [--filter <filter> ]
    [--time-window <start-time>,<end-time> ]
    [--verbose ]
    [--no-color ]
    [--before <value> ]
    [--after <value> ]
    [--syslog ]
    [--max-long-queue-size <value> ]
```

**参数**：  
+ `--log-dir`，`-ld`。用于检查日志文件的目录路径，例如 **`/greengrass/v2`/logs**。请勿与 `--syslog` 一起使用。每个要指定的其它目录均需使用单独的参数。您必须使用 `--log-dir` 或 `--log-file` 中的至少一个。您也可以在一个命令中同时使用这两个参数。
+ `--log-file`，`-lf`。您要使用的日志目录的路径。每个要指定的其它目录均需使用单独的参数。您必须使用 `--log-dir` 或 `--log-file` 中的至少一个。您也可以在一个命令中同时使用这两个参数。
+ `--follow`，`-fol`。显示发生的日志更新。Greengrass CLI 继续运行并读取指定日志。如果您指定时间窗口，则 Greengrass CLI 会在所有时间窗口结束后停止监控日志。
+ `--filter`，`-f`。用作筛选条件的关键字、正则表达式或键值对。以字符串、正则表达式或键值对的形式提供该值。每个要指定的其它筛选条件均需使用单独的参数。

  评估后，在单个参数中指定的多个筛选条件使用 OR 运算符分隔，而在其它参数中指定的筛选条件则用 AND 运算符组合。例如，如果您的命令包含 `--filter "installed" --filter "name=alpha,name=beta"`，则 Greengrass CLI 将筛选并显示同时包含关键字 `installed`和值为 `alpha` 或 `beta` 的键 `name` 的日志消息。
+ `--time-window`，`-t`。显示日志信息的时间窗口。您可以同时使用精确的时间戳和相对偏移量。必须以 `<begin-time>,<end-time>` 格式提供此信息。如果您未指定开始时间或结束时间，则该选项的值将默认为当前的系统日期和时间。每个要指定的其它时间窗口均需使用单独的参数。

  Greengrass CLI 支持以下格式的时间戳：
  + `yyyy-MM-DD`，例如 `2020-06-30`。使用此格式时，时间默认为 00:00:00。

    `yyyyMMDD`，例如 `20200630`。使用此格式时，时间默认为 00:00:00。

    `HH:mm:ss`，例如 `15:30:45`。使用此格式时，日期默认为当前系统日期。

    `HH:mm:ssSSS`，例如 `15:30:45`。使用此格式时，日期默认为当前系统日期。

    `YYYY-MM-DD'T'HH:mm:ss'Z'`，例如 `2020-06-30T15:30:45Z`。

    `YYYY-MM-DD'T'HH:mm:ss`，例如 `2020-06-30T15:30:45`。

    `yyyy-MM-dd'T'HH:mm:ss.SSS`，例如 `2020-06-30T15:30:45.250`。

  相对偏移量指定偏移当前系统时间的时间段。Greengrass CLI 支持以下格式的相对偏移量：`+|-[<value>h|hr|hours][valuem|min|minutes][value]s|sec|seconds`

  例如，以下参数用于指定当前时间之前的 1 小时到 2 小时 15 分钟之间的时间窗口：`--time-window -2h15min,-1hr`。
+ `--verbose`。显示日志消息中的所有字段。请勿与 `--syslog` 一起使用。
+ `--no-color`，`-nc`。移除颜色编码。日志消息的默认颜色编码使用红色粗体文本。由于使用 ANSI 转义序列，因此仅支持 Unix 类终端。
+ `--before`，`-b`。在匹配的日志条目之前显示的行数。默认值为 0。
+ `--after`，`-a`。在匹配的日志条目之后显示的行数。默认值为 0。
+ `--syslog`。使用 RFC3164 定义的系统日志协议处理所有日志文件。请勿与 `--log-dir` 和 `--verbose` 一起使用。系统协议使用以下格式：`"<$Priority>$Timestamp $Host $Logger ($Class): $Message"`如果您未指定日志文件，则 Greengrass CLI 会从以下位置读取日志消息：`/var/log/messages`、`/var/log/syslog` 或 `/var/log/system.log`。

  AWS IoT Greengrass 目前不支持在 Windows 核心设备上使用此功能。
+ `--max-log-queue-size`，`-m`。分配给内存的最大日志条目数量。使用此选项可优化内存使用情况。默认值为 100。

**输出**：  
下面的示例显示运行此命令时产生的输出。  

```
$ sudo greengrass-cli logs get --verbose \
    --log-file /greengrass/v2/logs/greengrass.log \
    --filter deployment,serviceName=DeploymentService \
    --filter level=INFO \
    --time-window 2020-12-08T01:11:17,2020-12-08T01:11:22

2020-12-08T01:11:17.615Z [INFO] (pool-2-thread-14) com.aws.greengrass.deployment.DeploymentService: Current deployment finished. {DeploymentId=44d89f46-1a29-4044-ad89-5151213dfcbc, serviceName=DeploymentService, currentState=RUNNING}
2020-12-08T01:11:17.675Z [INFO] (pool-2-thread-14) com.aws.greengrass.deployment.IotJobsHelper: Updating status of persisted deployment. {Status=SUCCEEDED, StatusDetails={detailed-deployment-status=SUCCESSFUL}, ThingName=MyThing, JobId=22d89f46-1a29-4044-ad89-5151213dfcbc
```

## list-keywords
<a name="logs-list-keywords"></a>

显示可用于筛选日志文件的建议关键字。

**摘要**  

```
greengrass-cli logs list-keywords [arguments]
```

**参数**：  
无

**输出**：  
下面的示例显示运行此命令时产生的输出。  

```
$ sudo greengrass-cli logs list-keywords

Here is a list of suggested keywords for Greengrass log:
level=$str
thread=$str
loggerName=$str
eventType=$str
serviceName=$str
error=$str
```

```
$ sudo greengrass-cli logs list-keywords --syslog

Here is a list of suggested keywords for syslog:
priority=$int
host=$str
logger=$str
class=$str
```

## list-log-files
<a name="logs-list-log-files"></a>

显示位于指定目录中的日志文件。

**摘要**  

```
greengrass-cli logs list-log-files [arguments]
```

**参数**：  
`--log-dir`，`-ld`。用于检查日志文件的目录路径。

**输出**：  
下面的示例显示运行此命令时产生的输出。  

```
$ sudo greengrass-cli logs list-log-files -ld /greengrass/v2/logs/

/greengrass/v2/logs/aws.greengrass.Nucleus.log
/greengrass/v2/logs/main.log
/greengrass/v2/logs/greengrass.log
Total 3 files found.
```

# get-debug-password
<a name="gg-cli-get-debug-password"></a>

使用 `get-debug-password` 命令打印随机生成的 [ 本地调试控制台组件](local-debug-console-component.md)（`aws.greengrass.LocalDebugConsole`）的密码。密码将在生成 8 小时后过期。

**摘要**  

```
greengrass-cli get-debug-password
```

**参数**：  
无

**输出**：  
下面的示例显示运行此命令时产生的输出。  

```
$ sudo greengrass-cli get-debug-password

Username: debug
Password: bEDp3MOHdj8ou2w5de_sCBI2XAaguy3a8XxREXAMPLE
Password expires at: 2021-04-01T17:01:43.921999931-07:00
The local debug console is configured to use TLS security. The certificate is self-signed so you will need to bypass your web browser's security warnings to open the console.
Before you bypass the security warning, verify that the certificate fingerprint matches the following fingerprints.
SHA-256: 15 0B 2C E2 54 8B 22 DE 08 46 54 8A B1 2B 25 DE FB 02 7D 01 4E 4A 56 67 96 DA A6 CC B1 D2 C4 1B
SHA-1: BC 3E 16 04 D3 80 70 DA E0 47 25 F9 90 FA D6 02 80 3E B5 C1
```