![如何过滤命令 gcloud container operations list?语法是什么?](https://linux22.com/image/792023/%E5%A6%82%E4%BD%95%E8%BF%87%E6%BB%A4%E5%91%BD%E4%BB%A4%20gcloud%20container%20operations%20list%EF%BC%9F%E8%AF%AD%E6%B3%95%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
如果您有 20 个 GKE 集群,gcloud container operations list 会返回太多数据。
Google Cloud 的官方文档缺少如何进行过滤的良好示例:
- 他们的文档只是提到
--filter=[EXPRESSION]
,如果没有表达式应该是什么样子的语法,这根本就没有任何帮助...... gcloud container operations list --help
只是提到请gcloud topic filters
参阅更多信息,试图解释,但如果没有例子就很难理解。
那么问题是过滤应该是什么样的?
答案1
export PROJECT=name-of-your-project
export CLUSTER=name-of-your-cluster
gcloud container operations list \
--filter="(targetLink ~ $CLUSTER) AND (2024-01-04)" \
--sort-by=START_TIME --format=yaml --project=$PROJECT
gcloud container operations list \
--filter="(targetLink ~ $CLUSTER) AND (startTime > 2024-01-04) AND (startTime < 2024-01-08)" \
--sort-by=START_TIME --format=yaml --project=$PROJECT
gcloud container operations list \
--filter="(targetLink ~ $CLUSTER) AND (startTime > 2024-01-08T06:18:55.104-08:00) AND (startTime < 2024-01-08T15:18:55.104-08:00)" \
--sort-by=START_TIME --format=yaml --project=$PROJECT
语法解释:
--format=yaml
最终提高了详细程度(隐藏功能),并告诉您可以过滤的键的准确名称。
(这就是我将 targetLink 和 startTime 识别为有效键的方式)--sort-by=START_TIME
很方便--filter
需要“双引号”- “(真布尔表达式)AND(真)AND(真)”
--filter="targetLink ~ $CLUSTER"
~ 充当键值中的字符串
,因此字符串“$CLUSTER”包含在名为 targetLink 的键的长字符串值中。
如果您有 20 个集群,这可以让您将结果过滤到单个集群:)--filter="2024-01-04"
这将检查所有键的值中的该字符串,
让您检查某一天发生的操作。--filter="(startTime < 2024-01-06)"
如果您想查看特定日期之前的条目,这也是有效且方便的。请注意,键必须始终位于不等式的左侧,startTime 不能位于不等式的右侧。