kubectl 命令检查 cronjob 是否处于活动状态
Kubectl command to check if cronjob is active or not
我正在尝试通过 shell 脚本检查特定的 cronjob 是否处于活动状态,以便在作业不活动时执行某些操作。我尝试使用 cronjob 的字段选择器属性和 cron 作业创建的作业,如下所示
kubectl get cronjobs --field-selector status.active==1
kubectl get jobs --field-selector status.succeeded==1
但是不支持获取这些字段选择器。还有其他 field/way 我可以检查 cronjob 是否处于活动状态的地方吗?
您还可以在您的 cronjob 上设置一个标签(并在 cronjob 的 template
部分设置相同的标签,以便它传播到创建的基础作业),然后将其用于 select 通过:
kubectl get cronjob -l label=value
kubectl get job -l label=value
是的,select active/disabled 状态,但您在问题中确实提到您正在检查特定的 cronjob,因此这会显示特定 cronjob 的详细信息或工作给你检查
要获取 cronjob 的实际挂起状态,您可以将其通过管道传输到 jq
kubectl get cronjob cronjob-name | jq .items[0].spec.suspend
如果 cronjob 是否暂停,这将为您提供“false”或“true”:
$ kubectl get cronjob -n test
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE
api */5 * * * * False 0 78s 5m53s
$ kubectl get cronjob -n test api -o json | jq .spec.suspend
false
你也可以用 jsonpath
kubectl get cronjob -n test api -o jsonpath="{.spec.suspend}"
在下面的评论中,您可以使用 can active
(即当前 运行),查看有多少作业处于活动状态(如果您没有任何作业,则为 0 运行 )
kubectl get cronjob -n test api -o jsonpath="{.spec.active}"
我正在尝试通过 shell 脚本检查特定的 cronjob 是否处于活动状态,以便在作业不活动时执行某些操作。我尝试使用 cronjob 的字段选择器属性和 cron 作业创建的作业,如下所示
kubectl get cronjobs --field-selector status.active==1
kubectl get jobs --field-selector status.succeeded==1
但是不支持获取这些字段选择器。还有其他 field/way 我可以检查 cronjob 是否处于活动状态的地方吗?
您还可以在您的 cronjob 上设置一个标签(并在 cronjob 的 template
部分设置相同的标签,以便它传播到创建的基础作业),然后将其用于 select 通过:
kubectl get cronjob -l label=value
kubectl get job -l label=value
是的,select active/disabled 状态,但您在问题中确实提到您正在检查特定的 cronjob,因此这会显示特定 cronjob 的详细信息或工作给你检查
要获取 cronjob 的实际挂起状态,您可以将其通过管道传输到 jq
kubectl get cronjob cronjob-name | jq .items[0].spec.suspend
如果 cronjob 是否暂停,这将为您提供“false”或“true”:
$ kubectl get cronjob -n test
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE
api */5 * * * * False 0 78s 5m53s
$ kubectl get cronjob -n test api -o json | jq .spec.suspend
false
你也可以用 jsonpath
kubectl get cronjob -n test api -o jsonpath="{.spec.suspend}"
在下面的评论中,您可以使用 can active
(即当前 运行),查看有多少作业处于活动状态(如果您没有任何作业,则为 0 运行 )
kubectl get cronjob -n test api -o jsonpath="{.spec.active}"