shell中怎么根据进程查找指定容器

shell中怎么根据进程查找指定容器

本篇内容主要讲解“shell中怎么根据进程查找指定容器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“shell中怎么根据进程查找指定容器”吧!

当我们在一台docker服务器上使用top命令定位出一个占用资源比较高的进程,如何发现它属于哪一个容器。

1、首先获取进程pid

2、使用docker top命令查找容器pid

docker top 容器命或容器id

当docker 容器过多时,一个一个排查对比费事费力,这里有一个脚本可以快速查找

#!/bin/bash#将需要查找的pid输入$1变量#将所有容器的pid导入变量aa=`dockerps-a|sed-n'1!p'|awk'{print$1}'`#将容器id循环导入dockertop命令,查找容器对应的pidforbin$adoc=`dockertop$b|sed-n'1!p'|awk'{print$2}'`#经每一个容器的pid与输入$1对比if[$c==$1];then#输出对应$1的容器信息dockerps-a|grep$cfidone

补充:shell查找进程并终止

创建kill.sh文件,内容如下:

port=9200#一、根据端口号查询对应的pid,两种都行pid=$(netstat-nlp|grep:$port|awk'{print$7}'|awk-F"/"'{print$1}');#pid=$(ps-ef|grep你的进程或端口|grep-vgrep|awk'{print$2}')#二、杀掉对应的进程,如果pid不存在,则不执行if[-n"$pid"];then  kill-9$pid;fi

这个脚本其实就2步,先获取进程id,然后 kill 掉这个进程。
(1)获取进程id的方法
这个可以用 awk命令来获取

ps-ef|grep你的进程|grep-vgrep|awk'{print$2}'

这里要把这个grep这个用 -v 来过滤掉,然后用awk命令,提取第2个参数就是进程id了
(2)杀进程方法
这个就直接kill -9 进程id 就ok了

kill-9你的进程id

到此,相信大家对“shell中怎么根据进程查找指定容器”有了更深的了解,不妨来实际操作一番吧!这里是恰卡编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

发布于 2022-02-07 23:15:00
收藏
分享
海报
0 条评论
34
上一篇:MyBatis ofType和javaType的区别是什么 下一篇:怎么通过日志文件恢复MySQL数据
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码