首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将watch与kubectl和xargs一起使用

无法将watch与kubectl和xargs一起使用
EN

Stack Overflow用户
提问于 2019-12-05 01:51:48
回答 1查看 938关注 0票数 1

队友们,我正在尝试每5秒跑一次下面的比赛,但是没有成功。

代码语言:javascript
复制
watch -n 5 kubectl get pods -n testes-asdf-234-asdf | grep -v Comple | xargs -l1 -- sh -c 'kubectl logs $1 -n testes-asdf-234-asdf main --tail=15' --

输出:

代码语言:javascript
复制
does nothing

尝试使用引号,但命令执行混乱,无法产生正确的输出。我的命令在没有监视和引号的情况下工作得很好

代码语言:javascript
复制
watch "kubectl get pods --no-headers -n testes-asdf-234-asdf | grep -v Comple | xargs -l1 -- sh -c 'kubectl logs $1 -n testes-asdf-234-asdf main --tail=15' --"
代码语言:javascript
复制
Every 2.0s: kubectl get pods --no-headers -n testes-asdf-234-asdf | grep -v Comple | xargs -l1 -- sh -c 'kubectl logs  -n testes...  Wed Dec  4 10:10:18 2019

Error from server (NotFound): pods "main" not found
Error from server (NotFound): pods "main" not found
Error from server (NotFound): pods "main" not found
Error from server (NotFound): pods "main" not found
Error from server (NotFound): pods "main" not found

不用手表也没问题

代码语言:javascript
复制
└─ $ ▶ kubectl get pods --no-headers -n testes-asdf-234-asdf | grep -v Comple | xargs -l1 -- sh -c 'kubectl logs $1 -n testes-asdf-234-asdf main --tail=15' --

**** Stack trace ****
/roadrunner/roadrunner: dw::core::Exception::Exception(dwStatus, char const*)+0xa1 [0xcdfc31]
/roadrunner/roadrunner: dw::roadcast::RoadCastServerEngine::checkMessageEnabledStatus(dwRoadCastMessageType, char const*)+0x3a [0x1c0e1ea]
/roadrunner/roadrunner() [0x1bc2f2a]
/roadrunner/roadrunner: dwRoadCastServer_sendImage()+0x72 [0x1bc4302]
/roadrunner/roadrunner: roadrunner::castData(dwImageObject*, char const*, long, long, unsigned long)+0x66 [0xd03726]
/roadrunner/roadrunner: roadrunner::RRMainPipeline::getCameraEventFrames(roadrunner::CameraFrame**, unsigned int&, roadrunner::RRMainPipeline::CameraFrameList&, dwSensorEvent const*)+0x75c [0xb2c91c]
/roadrunner/roadrunner: roadrunner::RRMainPipeline::getCameraFrames(roadrunner::RRMainPipeline::CameraFrameList*&, roadrunner::CameraFrame**, unsigned int&)+0x3b9 [0xb31039]
/roadrunner/roadrunner: roadrunner::RRMainPipeline::cameraThreadLoop()+0x634 [0xb44b64]
/usr/lib/x86_64-linux-gnu/libstdc++.so.6: ()+0xbd8f0 [0x7f8fe0a6f8f0]
/lib/x86_64-linux-gnu/libpthread.so.0: ()+0x76ba [0x7f90050eb6ba]
/lib/x86_64-linux-gnu/libc.so.6: clone()+0x6d [0x7f8fdff9e41d]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-05 01:58:20

除非您将命令放在引号中,否则bash将尝试将watch ... kubectl ...的输出传递给第一个grep,但watch永远不会退出。

所以试试这个:

代码语言:javascript
复制
watch -n 5 "kubectl get pods -n test | grep -v Comple | xargs -l1 -- sh -c 'kubectl logs \$1 -n test main --tail=15' --"

编辑:我没注意到你里面有一个$1。您需要对$进行转义,因为它现在包含在双引号中,并且只会扩展为一个空字符串(根据您所显示的输出)。

我编辑了上面的命令以反映这一点。

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

https://stackoverflow.com/questions/59182064

复制
相关文章

相似问题

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