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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 shell 脚本中,可以使用 "find" 命令来查找指定文件,例如: ``` find /path/to/search -name "file_name.extension" ``` 其中 "/path/to/search" 是需要搜索的目录,"file_name.extension" 是文件名(可以使用通配符)。该命令将返回所有符合要求的文件路径。 ### 回答2: Shell脚本是一种在Unix/Linux系统中用于执行一系列命令的脚本语言,常用于管理文件、进程和网络等操作。在Linux系统中,我们经常需要查找指定的文件,可以通过Shell脚本实现。以下是实现方法: 1. 使用find命令:find命令是Linux系统中的一个强大的查找命令,可以根据指定的条件查找文件。可以在Shell脚本使用find命令来查找指定的文件。例如:查找当前目录下所有扩展名为.txt的文件: ``` #!/bin/bash find . -name '*.txt' ``` 其中,“.”表示当前目录,“-name”后面跟着要查找的文件名,加上通配符*表示匹配任意字符。该脚本会在当前目录下查找所有扩展名为.txt的文件并输出到终端。 2. 使用grep命令:grep命令用于在文件中搜索指定的字符串,也可以用于查找文件名中包含指定字符串的文件。例如:查找当前目录下所有包含关键字“hello”的文件名: ``` #!/bin/bash ls | grep 'hello' ``` 其中,“ls”用于列出当前目录下的所有文件,管道符“|”将其输出传递给grep命令,grep命令根据关键字“hello”搜索文件名,输出包含关键字的文件名到终端。 3. 使用find和grep组合:find和grep可以结合使用来达到更精细的查找效果。例如:查找当前目录及其子目录下所有扩展名为.txt,且文件内容包含关键字“hello”的文件: ``` #!/bin/bash find . -name '*.txt' -exec grep -q 'hello' {} \; -print ``` 其中,“-exec”表示将find查找到的每个文件传递给grep命令进行处理,“{}”表示查找到的文件名,加上“\;”表示命令结束,“-print”用于输出查找到的文件名到终端。 以上是Shell脚本查找指定文件的几种方法,适用于不同的查找需求。在实际编写脚本时,需要根据实际情况选取最适合的方法来进行文件查找。 ### 回答3: 在Linux中,shell脚本是一种可以自动化执行的命令序列,因为它们可以从脚本中调用多个命令来完成任务。其中一种常见的任务就是查找指定文件,这在进行文件管理和维护时非常有用。 要编写一个可以查找指定文件的shell脚本,需要采取以下步骤: 1. 引导程序- 在脚本的开头加入一个用于引导该程序的声明,例如: #!/bin/bash 这将定义使用shell程序为bash,并且告诉系统如何解释该脚本。 2. 输入文件名- 接下来,脚本需要要求用户输入要查找的文件名,并将该文件名存储在变量中,例如: read -p "Enter the file name: " file_name 3. 搜索文件- 使用“find”命令来搜索指定目录下的文件。例如,以下命令将查找“/home/user/”目录中名为“$file_name”的文件: find /home/user/ -name "$file_name" 4. 条件检查- 要使结果更准确,可以添加其他条件来搜索特定的文件类型或日期。例如,以下命令将查找所有后缀为“.txt”的文本文件: find /home/user/ -name "*.txt" -type f 5. 输出结果- 最后,将搜索结果输出给用户。例如,以下命令将把搜索结果显示在屏幕上: echo "The search results are:" find /home/user/ -name "$file_name" | sed 's/^/ /' 通过以上步骤,就可以编写一个可以查找指定文件的shell脚本了。要求用户指定文件名,并在指定目录中搜索该文件。如果该文件存在,则显示它的位置。这将让文件管理和维护任务更加容易和高效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值