首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用awk选择一个microservice并创建一个具有当前日期和版本的文件。

使用awk选择一个microservice并创建一个具有当前日期和版本的文件。
EN

Unix & Linux用户
提问于 2022-07-14 22:02:25
回答 2查看 88关注 0票数 0

我希望看到带有最新版本的微服务的日志,并根据日期将其内容发送到文件中。

代码语言:javascript
运行
复制
user@MacBook-Pro ~ % kubectl -n bci-api get pods | grep ms-example-microservices                                             
ms-example-microservices-neg-re-v1-7-56bfd9f6c7-kjb24            1/1     Running            1 (6h39m ago)     6h47m
ms-example-microservices-neg-re-v2-0-66d88b48fb-9ttcf            1/1     Running            0                 5h14m
ms-example-microservices-neg-re-v2-1-6d8749dfb8-d42jk            1/1     Running            0                 6h26m
ms-example-microservices-neg-re-v2-2-849c97f6c-dnp45             1/1     Running            0                 4h53m
ms-example-microservices-neg-re-v2-3-db6dc776c-x45jl             1/1     Running            0                 5h50m
user@MacBook-Pro ~ % kubectl logs -f -n bci-api ms-example-microservices-neg-re-v2-3-db6dc776c-x45jl > pf_v2-3.2022-07-14.log

我想选择最新的版本(对于这个例子,v2-3),然后再创建一个带有日期的文件。

代码语言:javascript
运行
复制
user@MacBook-Pro ~ % kubectl -n bci-api get pods | grep ms-example-microservices | tail -n 1 | awk '{print $1}'    
ms-example-microservices-neg-re-v2-3-db6dc776c-x45jl
user@MacBook-Pro ~ % 

现在创建名称的日期-时间:

代码语言:javascript
运行
复制
user@MacBook-Pro ~ % $(date +"%Y%m%d_%H%M%S")
zsh: command not found: 20220714_172238
user@MacBook-Pro ~ % 

我尝试使用以下嵌套命令:

代码语言:javascript
运行
复制
kubectl logs -f -n bci-api $(kubectl -n bci-api get pods | grep ms-example-microservices | tail -n 1 | awk '{print $1}') > "pf_$(date +"%Y%m%d_%H%M%S").log"

不幸的是,我不知道如何为名称选择v2-3版本。

EN

回答 2

Unix & Linux用户

发布于 2022-07-15 08:43:33

既然你打电话给awk,整条线路:

代码语言:javascript
运行
复制
kubectl -n bci-api get pods | grep ms-example-microservices | tail -n 1 | awk '{print $1}'

可以被

代码语言:javascript
运行
复制
kubectl -n bci-api get pods |
awk '/ms-example-microservices/{last=$1}END{print last}'

现在,要选择版本,我假设第一个字符串具有相同数量的-分隔部件,我将选择第6部分和第7部分:

代码语言:javascript
运行
复制
kubectl -n bci-api get pods |
awk -F'[ -]*' '/ms-example-microservices/{last=$6"-"$7}END{print last}'

并添加日期(使用简化的%F_%T格式):

代码语言:javascript
运行
复制
$ printf '%s-%s\n' "$(
         kubectl -n bci-api get pods | 
         awk -F"[ -]" '/ms-example-microservices/{last=$6"-"$7}END{print last}'
       )"   "$(date +'%F-%T')"

v2-3-2022-07-15-04:40:09
票数 0
EN

Unix & Linux用户

发布于 2022-07-15 08:56:31

请用下面的命令试一下,它运行得很好

代码语言:javascript
运行
复制
varse=$(kubectl -n bci-api get pods|awk -F "-" '/ms-example-microservices/{x=$0}END{print $6"-"$7}')
kubectl -n bci-api get pods|awk '/ms-example-microservices/{x=$0}END{print }'  >pf_"$varse"_$(date +%Y-%m-$d).log
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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