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."

这个脚本执行以下操作:

  1. 使用 ​ps​ 命令获取包含 "pgz-admin" 字符串的进程的PID列表。
  2. 使用 ​awk​ 提取PID列。
  3. 使用 ​awk 'NR>5'​ 从PID列表中获取第六个及之后的PID。
  4. 使用 ​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输出不会受到颜色的影响。

相关推荐
王景程3 分钟前
如何测试短信接口
java·服务器·前端
微网兔子1 小时前
伺服器用什么语言开发呢?做什么用什么?
服务器·c++·后端·游戏
夸克App2 小时前
实现营销投放全流程自动化 超级汇川推出信息流智能投放产品“AI智投“
运维·人工智能·自动化
Rainbond云原生2 小时前
83k Star!n8n 让 AI 驱动的工作流自动化触手可及
运维·人工智能·自动化
木觞清2 小时前
深度对比评测:n8n vs Coze(扣子) vs Dify - 自动化工作流工具全解析
运维·自动化
一眼青苔2 小时前
切割PDF使用python,库PyPDF2
服务器·python·pdf
中云时代-防御可测试-小余2 小时前
高防IP是如何防护DDoS攻击和CC攻击的
运维·服务器·tcp/ip·安全·阿里云·ddos·宽度优先
网硕互联的小客服3 小时前
如何模拟黑客攻击(Red Teaming)以测试服务器安全性
运维·服务器
RECRUITGUY3 小时前
用交换机连接两台电脑,电脑A读取/写电脑B的数据
服务器·网络·负载均衡
樽酒ﻬق3 小时前
Kubernetes 常用运维命令整理
运维·容器·kubernetes