首页 > 解决方案 > bash,用 kubecolor 监视命令

问题描述

我将 kubectl 与 watch 一起使用,因此我可以在更新 pod 和其他内容时“实时”查看我正在做的事情,通常我会这样:

watch -n1 kubectl get pods 

现在我想使用 kubecolor 做同样的事情,因为输出要好得多,但是 watch 命令不会显示颜色,正如我在我正在尝试的手册页上阅读的那样:

watch -n1 --color "kubecolor get pods" 

没有任何运气,颜色不会显示:(

有人知道如何正确地做到这一点吗?

标签: bashkubernetes

解决方案


原因是kubecolor检测到它以非交互方式运行。因此问题不在于watch命令,而kubecolor在于与 watch 结合使用时禁用颜色输出的本身。

正如 Philippe 所评论的--force-colors,该kubecolor命令的开关可以防止这种情况。

一般来说:如果您使用的是 linux 操作系统,则可以使用unbuffer使输出按预期工作。对于 Debian/Ubuntu 安装expect软件包以获得unbuffer.

然后,要使用的命令可能如下所示:

watch -c unbuffer kubecolor get pods

除此之外kubectl(和kubecolor)支持--watch开关本身。不能解决所有用例,但由于它使用 API 服务器监视方法,因此效率更高。


推荐阅读