Linux监控

一、常用命令介绍

  1.ps

    ps命令主要可以做以下三种事情:

    1)让系统报告详细的信息

      在使用ps命令时,如果不采用任何的可选项,则其显示的信息是非常有限的,而且往往只显示当前用户所运行的程序。如下图:

      

      当系统管理员需要知道应用程序更加详细的运行信息时,如想要知道这个应用程序内存、CPU的占用率情况时,就需要加入一些可选项。如系统管理员需要查看其它用户所执行的应用程序时,就需要在这个命令后面采用可选项-al,如此的话,系统会列出系统中所有用户运行的所有程序。如下图:

      

      如果想知道某个程序CPU与内存的使用情况,而不是简单的显示其CPU的使用时间,那么就需要在这个命令后面加入参数-l,即ps -l命令可以让系统显示出应用程序的详细运行信息。如下图:

      

      F  代表中国程序的旗标(flag),4代表使用者为super user;

      S  代表中国程序的状态(STAT);

      PID  就是这个程序的ID,后面的PPID则是父程序的ID;

      C  CPU使用的资源百分比;

      PRI  Priority(优先执行序)的缩写;

      NI  Nice值;

      ADDR  kernel function,指出该程序在内存的哪个部分。如果是running的程序,则显示“-”;

      SZ  使用掉的内存大小;

      WCHAN 目前这个程序是否正在运行当中,“-”表示正在运作;

      TTY  登入这的终端机位置;

      TIME  使用掉的CPU时间;

      CMD  所下达的指令内容。

      一般来说,系统管理员关心的只是程序的PID、内存与CPU的使用率、命令的名字、用户采用的终端等等,其他的信息对于系统管理员来说价值不是很大。

    2)查看后台运行的程序

      默认情况下,ps命令只显示前台运行的程序,而不会显示后台运行的程序。但是并非所有 程序都是在前台运行。正常情况下,隐藏在后台运行的程序数量要比前台运行的程序多的多。如随着系统启动而启动的系统自带程序,其运行的方式就是后台运行的。而且有时候,系统出现问题往往是由于后台程序所造成的。如常见的木马等程序都是在后台所运行的。所以系统管理员相对来说,更加想要知道在后台运行着哪些程序。

      在不同版本的Linux操作系统中,要显示后台进程采用的可选项是不同的。采用ps aux命令可以显示出所有的应用程序(包括前台和后台的)。参数与可选项的差异主要是在前面有没有这个“-”符号。如果带有这个符号的就表示这是一个可选项。如果不带的,就表示这是一个参数。如果不知道要显示全部进程该使用哪个可选项时,可以利用ps --help来查看系统帮助。

    3)对程序列表进行排序

      可以使用--sort参数进行排序。如ps-A --sort cmd,标识显示系统所有的应用程序,并根据程序命令来进行排序。在Linux操作系统参数中,参数大小写不同往往代表着不同的含义。如上面这个命令,大写字母A表示所有的应用程序,而小写字母a则表示“all w/ tty except session leaders”。意思是用来过滤不同终端登录账户所运行的应用程序。

      [root@linux ~]# ps aux 

      

      USER  改进程属于哪个使用者账号的;

      PID  进程号;

      %CPU  进程使用掉的CPU资源百分比;

      %MEN  进程所占用的物理内存百分比;

      VSZ  进程使用掉的虚拟内存量(Kbytes)

      RRS  进程占用的固定的内存量(Kbytes)

      TTY  该进程是在哪个终端机上面运作,若与终端机无关,则显示?,tty1-6是本机上面的登入者程序,若为pts/0等的则表示是由网络连接进主机的程序。

      STAT  该程序目前的状态:

        R  正在运作或者是可被运作的;

        S  该程序正在睡眠当中(可说是idle状态),但可被某些讯号(signal)唤醒;

        T  该程序目前正在侦测或者是停止了;

        Z  该程序应该已经终止,但是其父程序却无法正常的终止他,造成zombie(僵尸)程序的状态;

        I  空闲Idle;

          D  不可中断Uninterruptible sleep(usually IO)收到信号不唤醒和不可运行,进程必须等待直到有中断发生;

        T  终止Terminate进程收到SIGSTOP,SIGSTP,SIGTIN,SIGTOU信号后停止运行;

        P  等待交换页

        W  无驻留页 has no resident pages 没有足够的记忆体分页可分配

        X  死掉的进程

        <  高优先级进程,高优先序的进程

        N  低优先级进程,低优先序的进程

        L  内存锁页Lock,有记忆体分页分配并缩在记忆体内

        s  进程的领导者(在它之下有子进程)

        I  多进程的(使用CLONE_THREAD,类似NPTL pthreads)

        +  位于后台的进程组

      [root@linux ~]# ps -lA

      

      [root@linux ~]# ps axjf 

      

      选项/参数:      

-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
-A 显示所有进程(等价于-e)(utility)
-a 显示一个终端的所有进程,除了会话引线
-N 忽略选择。
-d 显示所有进程,但省略所有的会话引线(utility)
-x 显示没有控制终端的进程,同时显示各个命令的具体路径。dx不可合用。(utility)
-p pid 进程使用cpu的时间
-u uid or username 选择有效的用户id或者是用户名
-g gid or groupname 显示组的所有进程。
U username 显示该用户下的所有进程,且显示各个命令的详细路径。如:ps U zhang;(utility)
-f 全部列出,通常和其他选项联用。如:ps -fa or ps -fx and so on.
-l 长格式(有F,wchan,C 等字段)
-j 作业格式
-o 用户自定义格式。
v 以虚拟存储器格式显示
s 以信号格式显示
-m 显示所有的线程
-H 显示进程的层次(和其它的命令合用,如:ps -Ha)(utility)
e 命令之后显示环境(如:ps -d e; ps -a e)(utility)
h 不显示第一行

l 长格式输出;
u 按用户名和启动时间的顺序来显示进程;
j 用任务格式来显示进程;
f 用树形格式来显示进程;
a 显示所有用户的所有进程(包括其它用户);
x 显示无控制终端的进程;
r 显示运行中的进程;
ww 避免详细参数被截断

ps命令常用用法(方便查看系统进程)

1)ps a 显示现行终端机下的所有程序,包括其他用户的程序。
2)ps -A 显示所有进程。
3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
4)ps -e 此参数的效果和指定"A"参数相同。
5)ps e 列出程序时,显示每个程序所使用的环境变量。
6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
7)ps -H 显示树状结构,表示程序间的相互关系。
8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
9)ps s 采用程序信号的格式显示程序状况。
10)ps S 列出程序时,包括已中断的子程序资料。
11)ps -t<终端机编号>  指定终端机编号,并列出属于该终端机的程序的状况。
12)ps u 以用户为主的格式来显示程序状况。
13)ps x 显示所有程序,不以终端机来区分。
14)最常用的方法是ps -aux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。

原文地址:https://www.cnblogs.com/susanhonly/p/7698258.html