최신 버전의 마이크로서비스 로그를 보고 날짜를 기준으로 해당 내용을 파일로 보내고 싶습니다.
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
최신 버전(이 경우 )을 선택하고 날짜가 포함된 파일을 만들고 싶습니다 . 한줄로 가능한가요?
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 ~ %
이제 이름에 대한 날짜/시간을 만듭니다.
user@MacBook-Pro ~ % $(date +"%Y%m%d_%H%M%S")
zsh: command not found: 20220714_172238
user@MacBook-Pro ~ %
나는 노력하고있다중첩됨주문하다:
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
불행히도 이름의 버전을 선택하는 방법을 모르겠습니다 .
답변1
awk를 호출하고 있으므로 전체 줄은 다음과 같습니다.
kubectl -n bci-api get pods | grep ms-example-microservices | tail -n 1 | awk '{print $1}'
로 대체될 수 있다
kubectl -n bci-api get pods |
awk '/ms-example-microservices/{last=$1}END{print last}'
이제 버전을 선택하기 위해 첫 번째 문자열에 동일한 수의 -
구분된 부분이 있다고 가정하고 부품 번호 6과 부품 번호 7을 선택하겠습니다.
kubectl -n bci-api get pods |
awk -F'[ -]*' '/ms-example-microservices/{last=$6"-"$7}END{print last}'
날짜를 추가합니다(단순화된 %F_%T
형식 사용:
$ 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
답변2
아래 명령을 사용해 보십시오. 정상적으로 작동합니다.
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