首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CentOS删除除了最近5个JAR程序外的所有指定Java程序

帮我写一个shell脚本,ps -eo pid,lstart,cmd --sort=-start_time | grep "pgz-admin"查到的结果,返回的所有进程PID,第六个之上的,全部kill

当然,你可以创建一个简单的Shell脚本来完成这个任务。以下是一个例子:

#!/bin/bash # 获取包含 "pgz-admin" 字符串的进程的PID列表 pids=$(ps -eo pid,lstart,cmd --sort=-start_time | grep "pgz-admin" | awk '{print $1}') # 获取PID列表中第六个及之后的PID pids_to_kill=$(echo "$pids" | awk 'NR>5') # 杀死所有符合条件的进程 for pid in $pids_to_kill; do echo "Killing process with PID: $pid" kill -9 "$pid" done echo "Processes killed."

无注释版本

#!/bin/bash pids=$(ps -eo pid,lstart,cmd --sort=-start_time | grep "pgz-admin" | awk '{print $1}') pids_to_kill=$(echo "$pids" | awk 'NR>6') for pid in $pids_to_kill; do echo "Killing process with PID: $pid" kill -9 "$pid" done echo "Processes killed."

这个脚本执行以下操作:

使用 ps 命令获取包含 "pgz-admin" 字符串的进程的PID列表。

使用 awk 提取PID列。

使用 awk 'NR>5' 从PID列表中获取第六个及之后的PID。

使用 kill -9 命令杀死所有符合条件的进程。

请确保在运行脚本之前你有足够的权限,因为kill -9是强制终止进程的操作。在脚本中使用 echo 语句,可以看到被杀死的进程的PID。

不包含颜色,将5改为6,或者用以下

#!/bin/bash # 获取包含 "pgz-admin" 字符串的进程的PID列表 pids=$(ps -eo pid,lstart,cmd --sort=-start_time | grep --color=never "pgz-admin" | awk '{print $1}') # 获取PID列表中第六个及之后的PID pids_to_kill=$(echo "$pids" | awk 'NR>5') # 杀死所有符合条件的进程 for pid in $pids_to_kill; do echo "Killing process with PID: $pid" kill -9 "$pid" done echo "Processes killed."

在这个脚本中,grep --color=never 选项用于禁用颜色输出。这样可以确保grep输出不会受到颜色的影响。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OPhI7yph29zWzSRPdD-qzh4Q0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券