linux抓取top命令中数据的方法

top在linux中是一个非常直观的命令,可以清晰地看到各进程对资源的使用情况。

?

但是如果你想从top命令展示中提取某些数据出来,如果想当然地使用这句命令:

top|grep xxx

就会被卡住,欲哭无泪。

?

我们不妨查一下top这个命令,看看是否有其他办法来把数据抓出来。

?

首先简单了解一下top这个命令。

?

top是linux的一个性能分析工具,类似于windows的任务管理器。其最大特点有两个:动态、直观地显示进程占用资源情况。

执行top的时候,会在前台默认打开一个terminal,可使用q来退出。

例如:

?

上面的图中,有很多有用的信息:

1. 可以看到uptime、1min 5min 15min的负载
2. 可以看到总任务数、在跑任务数、停止任务数、僵尸任务数
3. 可以看到user数
4. 可以看到总的cpu负载情况
5. 可以看到总的内存和swap使用情况,以kb为单位
6. 各个进程使用系统资源的情况

?

上面的各列分别指:

PID: 进程号
USER: 启动进程的用户
PR: 优先级
NI: 谦让级
VIRT: 虚拟内存占用
RES: 进程使用的、未被换出的物理内存大小
SHR: 共享内存大小,单位kb
S: 进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
%CPU: 上次更新到现在的CPU时间占用百分比
%Mem: 物理内存占用百分比
TIME+: 进程启动时间
COMMAND: 命令名

?

而这个命令也有一些参数,具体可以看下边:

-b: 批处理
-c: 显示完整的命令
-l:忽略失效进程
-s: 保密模式
-n 数字: 显示次数,后加
-u 用户名: 显示某用户下的进程情况
-p 进程号: 指定进程

?

top还有一些交互命令,在前置页面使用,十分方便:

h: 显示帮助菜单
k: 杀死一个进程
i: 忽略僵尸进程
P: 按照CPU占用进行排序
M: 按照内存占用进行排序
T: 根据时间/累计时间进行排序
W: 将结果保存到~/.toprc文件

?

好了,介绍了一圈之后,到了本文的重点了。如果我要抓出mysql进程,查看其性能情况并取数,可使用以下两种方法:

top -u mysql -n 1|grep mysqld|awk '{print $9}'   #取CPU占用数据
top -u mysql -n 1|grep mysqld|awk '{print $10}'  #取内存占用数据

或者:

top -b -n 1|grep mysql|awk '{print $9}'    #取CPU占用数据
top -b -n 1|grep mysql|awk '{print $10}'   #取内存占用数据

而抓取数据只是前置步骤,后续可以使用此数据进行各种后续操作。

原文地址:https://www.cnblogs.com/young233/p/12059435.html

时间: 2024-10-03 06:56:51

linux抓取top命令中数据的方法的相关文章

Linux top命令中CPU信息的详解(转)

add by zhj: 下面的文章解释的很好了,这里再说明一下top命令中wa的含义,我们知道,当IO阻塞时,操作系统会把进程改为阻塞态,将CPU调度到运行其它进程. CPU在空闲状态下,会检查是否有阻塞的IO(磁盘或网络),如果有,那就认为是wa:如果没有,那才是真正的idle.在top命令中,85.1%id是真正的idle占比,而且有下面的公式 us + sy + ni + id + wa + hi + si + st = 100%,当wa比较高时,比如超过30%时,说明IO读写很慢,用su

使用burpsuite等代理工具抓取docker容器中的数据包

使用burpsuite等代理工具抓取docker容器中的数据包,下面是详细的教程. 以docker中的某个漏洞平台(bwapp)为例,展示如何抓包. 1.首先使用docker下载bwapp: # docker pull raesene/bwapp 2.然后运行bwapp (使用命令   --env HTTP_PROXY="http://192.168.43.14:8080"   来进行代理设置,这里设置的是burpsuite中的ip地址以及端口) # docker run -d --n

Linux 抓取网页方式(curl+wget)

Linux抓取网页,简单方法是直接通过 curl 或 wget 两种命令. curl 和 wget支持协议 curl  支持 http,https,ftp,ftps,scp,telnet等网络协议 wget支持 http,https,ftp网络协议 curl 和 wget抓取实例 抓取网页,主要有url 网址和proxy代理两种方式 1. url 网址方式抓取 (1)curl下载百度首页内容,保存在baidu_html文件中 curl  http://www.baidu.com/  -o  ba

Python抓取手机APP中内容

首先下载Wireshark和模拟器(天天模拟器,夜神模拟器),天天模拟器在自带的应用商店里面能够登录微信. 然后打开Wireshark选择一个网卡开始抓包. 开始抓包后,在模拟器中要抓取的APP中对想要的资源进行点击访问,操作完成后停止捕捉,排除干扰. Filter用于过滤数据,在里面输入选择的过滤条件.相关的语法和设置可以在网上查找资料,这里干扰项较少,直接选出http协议的数据包. 点击所需要的数据进行分析,可以将里面的字段复制出来构造Header然后对资源进行访问. 1 # coding:

抓取扫描枪扫描数据的案例

背景: 最近要做一个抓取扫描枪扫描条形码获取条形码数据的功能,以前没有玩过扫描枪,但是因为做过很多其他方面的外设获取数据的项目,所以原理也明白,都是相当于键盘输入,所以相当的是通过获取键盘输入的方案实现,因为这个功能点是用于整个pc上所有扫描枪程序的数据的抓取,就是其他程序用扫描枪,我做的这个程序也能抓取到数据,并对数据进行相应的处理,至于数据处理那是后面自己所做的业务需求的处理了,和抓取扫描枪扫描数据无关了,所以可以通过全局键盘钩子抓取键盘的输入去实现,这样能够去获取每个键盘输入的值,想法有了

Python爬虫成长之路:抓取证券之星的股票数据

获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为python3.5,意在抓取证券之星上当天所有A股数据.程序主要分为三个部分:网页源码的获取.所需内容的提取.所得结果的整理. 一.网页源码的获取 很多人喜欢用python爬虫的原因之一就是它容易上手.只需以下几行代码既可抓取大部分网页的源码. import urllib.request url='http://quote.stockstar

[Python爬虫] 之十:Selenium +phantomjs抓取活动行中会议活动(多线程抓取)

延续上个抓取活动行中会议活动的问题,上次使用是单线程的抓取,效率较低,现在使用多线程的抓取. 数据的抓取分为两个过程:首先获取每个关键字搜索结果对应的url和页数,保存在列表里面,这个过程用一个线程来实现(类似生产者),同时根据获取的关键字的url和页数,抓取对应的数据,这个过程用多线程来抓取(类似消费者) 这样整个抓取过程共用了144.366188 秒,采用单线程来进行抓取要用大概184秒,这样大概节省了40秒 具体代码如下: # coding=utf-8import osimport ref

Fiddler高级用法—Fiddler Script抓取app网页json数据并保存

FiddlerScript 环境搭建 官网下载: https://www.telerik.com/fiddler 安装步骤参照下面这篇文章(安装证书抓取https皆有详细步骤): https://www.cnblogs.com/liulinghua90/p/9109282.html 简单Fiddler Script 如下展示了Fiddler在客户端与服务端进行交互时的位置,在客户端发起http请求及接收服务端返回的数据时都可截取交互的数据.那么在Fiddler中我们就可以抓取所有http请求的数

用python+selenium抓取豆瓣读书中最受关注图书,按照评分排序

抓取豆瓣读书中的(http://book.douban.com/)最受关注图书,按照评分排序,并保存至txt文件中,需要抓取书籍的名称,作者,评分,体裁和一句话评论 #coding=utf-8 from selenium import webdriver from time import sleep class DoubanPopularBook:     def __init__(self):         self.dr = webdriver.Chrome()         self.