常见命令-资源查看-pgrep命令实践

news/2025/3/21 0:10:40/文章来源:https://www.cnblogs.com/yiwenrong/p/18781778

目录
  • 一、基础进程定位
    • 1. 服务进程快速检索
    • 2. 多条件复合查询
  • 二、高级进程诊断
    • 3. 进程树分析
    • 4. 僵尸进程定位
  • 三、系统管理实践
    • 5. 服务状态监控脚本
    • 6. 时间敏感进程追踪
  • 四、安全审计技巧
    • 7. 隐蔽进程检测
    • 8. 网络连接关联
  • 五、性能优化场景
    • 9. CPU占用分析
    • 10. 内存泄漏追踪
  • 六、pgrep参数详解表
  • 七、排错注意事项


一、基础进程定位

1. 服务进程快速检索

# 查找Nginx主进程(精确匹配)
pgrep -x nginx# 查找包含"java"的进程(模糊匹配)
pgrep -f "java.*Dspring.config"

2. 多条件复合查询

# 查找用户www运行的PHP-FPM进程
pgrep -u www php-fpm# 排除root用户查找sshd进程 
pgrep -v -u root sshd

二、高级进程诊断

3. 进程树分析

# 显示进程名和PID(调试父子进程关系)
pgrep -l -d " -> " httpd
# 输出示例:890 -> httpd -> 891 -> httpd

4. 僵尸进程定位

# 结合ps查找僵尸进程
ps -A -ostat,pid | grep Z | awk '{print $2}' | xargs pgrep -P

三、系统管理实践

5. 服务状态监控脚本

#!/bin/bash
SERVICE="mysqld"
if pgrep -x "$SERVICE" >/dev/null; thenecho "$(date): $SERVICE is running" >> /var/log/service_monitor.log
elsesystemctl restart $SERVICE
fi

6. 时间敏感进程追踪

# 查找启动超过30天的进程
pgrep -o -t $(date -d "30 days ago" +%Y%m%d%H%M)

四、安全审计技巧

7. 隐蔽进程检测

# 查找无二进制文件的进程(需root)
pgrep -a -f "^/tmp/" | grep -vE "(\.sh|\.py)$"

8. 网络连接关联

# 查找监听80端口的进程
ss -tuln | grep ":80 " | awk '{print $5}' | cut -d: -f2 | xargs pgrep -f

五、性能优化场景

9. CPU占用分析

# 结合top实时监控Java进程
watch -n 1 "pgrep java | xargs top -p"

10. 内存泄漏追踪

# 周期性记录进程内存
while true; do pgrep -f app_server | xargs ps -o pid,rss --no-headers >> mem.logsleep 60
done

六、pgrep参数详解表

参数 功能说明 典型场景
-l 显示进程名 确认进程对应程序
-a 显示完整命令行 识别不同启动参数的实例
-n 选择最新启动的进程 定位最近启动的服务
-o 选择最旧进程 查找长期运行的守护进程
-P 指定父进程ID 分析进程树结构
-t 按终端过滤 检测异常登录会话
-G 按用户组过滤 审计特定用户组的进程

七、排错注意事项

  1. 权限限制:普通用户无法查看其他用户进程,需用sudo
  2. 进程伪装:恶意进程可能伪造进程名,需结合-a参数验证
  3. systemd干扰:使用systemctl status验证服务进程更可靠

示例:验证可疑进程

$ pgrep -a xmr-stak
1234 /usr/lib/systemd/systemd-journald
5678 /tmp/.cache/mysql/xmr-stak
# 发现伪装成系统服务的挖矿程序

建议将常用查询封装为alias:

alias pgcpu='pgrep -f java | xargs ps -o pcpu,pmem,cmd --sort=-pcpu'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/901699.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

halcon 入门教程(四) 一维码识别,二维码识别,OCR识别

原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/18781763有兴趣可以多看其他的halcon教程halcon 学习教程目录OK,本篇讲一些一维码,二维码,OCR识别的相关入门知识,不会讲的太深,因为如果你不是专门做这种设备的公司基本不会深入的去研究分析,但是学会基础…

微服务跨模块调用接口如何传递当前用户信息

我们要在 api模块下 新增一个配置类 FeignInterceptorConfig 该类的作用是 跨模块调用接口时拦截然后给用户信息添加进去 具体实现方式 注意点是需要手动配置一下 通过Spring Boot的自动配置机制,将com.hmall.api.config.FeignInterceptorConfig类注册为自动配置类。具体作用…

听见未来,Audio+AI | GAS 2025完整议程揭晓!

听见未来,Audio+AI 2025中国国际音频产业大会(GAS) 将于 3月26-27日 在上海张江科学会堂盛大举办!大会主题聚焦聚焦“听见未来,Audio+AI”,两场主旨论坛、八场专题论坛。内容覆盖电子产业热点领域及方向,分别包括音频+AI、智能车载 音频、线上智能交互、智能耳机与可穿戴…

C++容器

容器的分类分为顺序容器(sequence) 关联容器(asscoiative) 无序容器(unordered) 顺序容器Array、vector、deque、list 关联容器有(mul)set和(mul)map,set和map的区别在于,set的key就是value,而map的key和value是分开的,set和map内部都是通过红黑树实现 无序容器主要为…

.NET Core奇技淫巧之WinForm使用Python.NET并打包

前言 之前整了一个GZY.EFCoreCompare 的库,可以用做对比实体与数据库结构.感兴趣可以去看看,地址:GZY.EFCoreCompare 但是只能导出execl表格. 后来大佬用Python写了个类,可以将execl表格直接生成SQL语句. 但是需要通过开发工具 或者python环境去运行. 对现场的非技术人员很不友…

MCP Server 开发实战指南(Python版)

原文链接:https://www.ryanzoe.top/ai/mcp-server-%e5%bc%80%e5%8f%91%e6%95%99%e7%a8%8b/ MCP 官方文档https://modelcontextprotocol.io/introduction各个 clients 对 MCP 的支持情况https://modelcontextprotocol.io/clientsMCP Python SDK:MCP Client 和 Server 官方 SDK…

Amphion 推出合成音频鉴别系统 Auditi;Gemini 引入 NotebookLM 功能,生成文档、网页音频摘要丨日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 技术 」、「有亮点的 产品 」、「有思考的 文章 」、「有态度的 观点 」、「有看点的 活动 」,但内容仅代表编辑…

洛谷题单指南-图论之树-P3398 仓鼠找 sugar

原题链接:https://www.luogu.com.cn/problem/P3398 题意解读:一颗n个节点的树,m个判断,判断树上两条路径是否相交,相交输出Y,否则输出N 解题思路:此题需要画一棵多叉树来辅助判断多次观察相交的路径,可以得出一个关键性质: 两条路径相交,必然有一条路径的LCA在另一条…

lg 主页

\(\Large\text{My Blog}\)中学:济南天山高级实验中学 关于我的学校究极久远预告:寒假游记滚滚长江东逝水,浪花淘尽英雄 是非成败转头空 青山依旧在,几度夕阳红 白发渔樵江渚上,观看秋月春风 一壶浊酒喜相逢 古今多少事,都付笑谈中街喧闹,人过往 且记曾相识,莫为少年留 …

day:25 selenium之介绍和环境配置

一、selenium介绍 selenium是一个第三方库,python有很多库; 1、什么是ui自动化? 通过模拟手工操作用户ui页面的方式,用代码去实现自动化操作和验证的行为。 2、ui自动化的优点? (1)解决重复性的功能测试和验证 (2)减少测试人员在回归测试时用例漏测和验证点的漏测 (3…

[算法学习记录] [更新中]最短路

顾名思义,最短路算法,就是求一个图中所有的点距某一个点的最短距离,常见的有Dijkstra算法、Bellman-Ford算法、Johnson算法与Floyd算法。 Dijkstra Dijistra算法实际上是一种由贪心与动态规划结合的算法,我们每次都贪心地选择到某个点的最近距离,又动态地更新着距离数组d的…

day6-static静态变量

静态变量/静态方法 被static修饰 工具类静态方法不能调用非静态。 非静态可以访问所有。 继承一个子类只能继承一个父类,可以多层继承,最大的父类为Objectcoding 练习:更好的方法:双指针不浪费空间