您现在的位置是:网站首页> 编程资料编程资料
shell脚本根据进程查找指定容器的方法_linux shell_
2023-05-26
478人已围观
简介 shell脚本根据进程查找指定容器的方法_linux shell_
当我们在一台docker服务器上使用top命令定位出一个占用资源比较高的进程,如何发现它属于哪一个容器。
1、首先获取进程pid

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

当docker 容器过多时,一个一个排查对比费事费力,这里有一个脚本可以快速查找
#!/bin/bash #将需要查找的pid输入$1变量 #将所有容器的pid导入变量a a=`docker ps -a |sed -n '1!p'|awk '{print $1}'` #将容器id循环导入docker top命令,查找容器对应的pid for b in $a do c=`docker top $b|sed -n '1!p'|awk '{print $2}'` #经每一个容器的pid与输入$1对比 if [ $c == $1 ] ; then #输出对应$1的容器信息 docker ps -a |grep $c fi done补充:shell查找进程并终止
创建kill.sh文件,内容如下:
port=9200 #一、根据端口号查询对应的pid,两种都行 pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }'); #pid=$(ps -ef | grep 你的进程或端口 | grep -v grep | awk '{print $2}') #二、杀掉对应的进程,如果pid不存在,则不执行 if [ -n "$pid" ]; then kill -9 $pid; fi 这个脚本其实就2步,先获取进程id,然后 kill 掉这个进程。
(1)获取进程id的方法
这个可以用 awk命令来获取
ps -ef | grep 你的进程 | grep -v grep | awk '{print $2}' 这里要把这个grep这个用 -v 来过滤掉,然后用awk命令,提取第2个参数就是进程id了
(2)杀进程方法
这个就直接kill -9 进程id 就ok了
kill -9 你的进程id
到此这篇关于shell脚本根据进程查找指定容器的文章就介绍到这了,更多相关shell脚本查找指定容器内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
您可能感兴趣的文章:
相关内容
- shell脚本检查域名证书是否过期的流程分析_linux shell_
- Shell函数返回值方式_linux shell_
- linux shell中Grep命令查找多个字符串(grep同时匹配多个关键字或任意关键字)_linux shell_
- Shell脚本函数传递参数的实现方法_linux shell_
- Shell自动化配置SSH免密登录和取消SSH免密配置脚本_linux shell_
- linux shell字符串截取的详细总结(实用!)_linux shell_
- linux系统下用.sh文件执行python命令的方法_linux shell_
- 面试必问Linux 命令su和sudo的区别解析_linux shell_
- Linux Shell如何用ssh命令统计分布式集群信息详解_linux shell_
- shell脚本实现mysql数据库双机定时备份的方法_linux shell_
