首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除大于日期的部署?

如何删除大于日期的部署?
EN

Stack Overflow用户
提问于 2020-07-18 02:25:50
回答 1查看 121关注 0票数 1

我需要删除群集上存在超过14天的部署。如果我运行:

代码语言:javascript
复制
oc get deploy --sort-by=.metadata.creationTimestamp | grep wml-os-rt-hybrid | awk '{ print $1 "\t\t" $6;}'

它为我提供了这些部署的列表和它们的历史:

代码语言:javascript
复制
wml-os-rt-hybrid0.1-gz3vczfc        15d
wml-os-rt-hybrid0.1-fj167pbt        8d
wml-os-rt-hybrid0.1-bdzkqi7z        7d
wml-os-rt-hybrid0.1-g4hclw4v        7d
wml-os-rt-hybrid0.1-j6x9tzt6        7d
wml-os-rt-hybrid0.1-qplkkilw        4d
wml-os-rt-hybrid0.1-sadgz9cz        6h

我对此是全新的,不知道我需要添加什么,这样它也会删除所有早于14d的部署,在这种情况下,它将只是一个部署,但在其他集群中,它将是数百个。目前,我手动删除它,查看列表,并通过运行(以上述为例)删除任何超过14天的内容:

代码语言:javascript
复制
oc delete deployment wml-os-rt-hybrid0.1-gz3vczfc

这是我试图找到一个关于如何自动化的答案的部分

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-18 02:49:00

要列出超过14天的所有条目,请尝试:

代码语言:javascript
复制
oc get deploy --sort-by=.metadata.creationTimestamp | awk '/wml-os-rt-hybrid/ && $6+0>14 { print $1 "\t\t" $6;}'

要删除这些部署,请执行以下操作:

代码语言:javascript
复制
oc get deploy --sort-by=.metadata.creationTimestamp | awk '/wml-os-rt-hybrid/ && $6+0>14 { system("oc delete deployment "$1);}'

在这里,/wml-os-rt-hybrid/ && $6+0>14选择(a)包含wml-os-rt-hybrid并且(b)具有大于14的第六个字段的所有行。然后,我们可以像第一个命令一样打印,也可以像第二个命令一样运行系统命令。

我们在将$6与14进行比较之前将0添加到它。我们这样做是因为它告诉awk$6视为一个数字,以便比较是数值而不是词法的。

注意,awk命令消除了对grep进程的需要。这使得生成的命令更高效(创建的进程减少了一个),也更简洁。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62959823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档