首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动删除舵机部署

自动删除舵机部署
EN

Unix & Linux用户
提问于 2018-05-14 09:16:50
回答 1查看 1.1K关注 0票数 0

我有一个要求,在一定时间后,我想删除通过舵机部署的所有吊舱。这一过程需要自动化。这是三个现有部署的helm实例的详细说明:

代码语言:javascript
复制
ubuntu@kops:~$ helm ls
NAME                    REVISION        UPDATED                         STATUS          CHART                   NAMESPACE
dandy-vulture           1               Mon May 14 07:21:17 2018        DEPLOYED        mak15-0.1.0             default
dapper-pig              1               Sun May 13 16:32:58 2018        DEPLOYED        naseer-0.1.0            default
eerie-dragonfly         1               Mon May 14 07:13:15 2018        DEPLOYED        mak12-0.1.0             default

我想删除所有至少有四个小时的部署。以下所示的删除舵机部署的手动过程应该是自动化的。

代码语言:javascript
复制
# helm delete dandy-vulture
EN

回答 1

Unix & Linux用户

发布于 2018-05-14 13:07:43

如果您所处的系统具有GNU (例如Linux系统),您可以使用awk解析helm ls的输出,然后使用GNU计算自那个时代以来的秒数,并确定相应的部署是否足够老:

代码语言:javascript
复制
helm ls | awk -v now=$(date +%s) -f delete-old-deployments.awk

其中delete-old-deployments.awk的内容如下:

代码语言:javascript
复制
BEGIN {
  # age cutoff, in seconds
  cutoff=4 * 60 * 60
}

NR > 1 {
        split($0, elements, /   */)
        "date -d '" elements[3] "' +%s" | getline elesecs
        if ((now - elesecs) > cutoff && elements[4] == "DEPLOYED") {
            system("helm delete '"elements[1]"'")

        }
}

根据我可以从helm ls源代码收集的内容,输出是一个由不同字符串组成的空格分隔的表。因此,我要求awk根据2个或更多的空格(拆分()函数的第三个参数中有三个空格;第二个,后面是零或多个空格)来拆分每一行(跳过标头后)。

拆分后的第三个字段是日期字符串,我们将其传递给GNU日期,要求它将其转换为自纪元以来的秒。如果“现在”和“然后”之间的区别大于截止值,那么我们将在相应的名称上调用helm delete命令。

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

https://unix.stackexchange.com/questions/443656

复制
相关文章

相似问题

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