linux 入门005 | linux基本的监测与管理

2024-06-20 19:24:52 浏览数 (1)

前言

本文将介绍Linux基本的监测与管理方法,包括系统资源监测、进程管理以及用户权限控制等方面的内容。通过学习本文,您将能够更好地理解和使用Linux系统,并有效地进行系统监测和管理工作。

1. ps:瞬时监测

ps 是 Linux 系统中一个非常基础且强大的命令行工具,全称为 Process Status,用于显示当前系统中运行的进程信息。这个命令能够提供进程的快照视图,即展示在执行 ps 命令那一刻的系统进程状态

In [9]:

代码语言:javascript复制
!
代码语言:javascript复制
ps
代码语言:javascript复制
    PID TTY          TIME CMD
     81 pts/0    00:00:00 sh
     82 pts/0    00:00:00 ps

进程树

In [10]:

代码语言:javascript复制
!
代码语言:javascript复制
ps -ef
代码语言:javascript复制
代码语言:javascript复制
UID          PID    PPID  C STIME TTY          TIME CMD
mw             1       0  0 11:49 ?        00:00:00 /opt/conda/bin/python /opt/c
mw             7       1  0 11:49 ?        00:00:00 gotty --port 8894 --index /e
mw            47       1  0 11:49 ?        00:00:00 ttyd -p 8896 -W bash
mw            55       1  0 11:50 ?        00:00:00 /opt/conda/bin/python -m ipy
mw            83      55  0 12:12 pts/0    00:00:00 /bin/sh -c ps -ef
mw            84      83  0 12:12 pts/0    00:00:00 ps -ef

-e 表示列出所有进程,-f 以全格式显示,包括PID、父PID、用户、CPU和内存使用情况、启动时间、命令行等。

下面是每一列的含义:

UID (User ID): 进程所属用户的用户ID。在这个例子中,所有进程都属于用户mw。

PID (Process ID): 进程的唯一标识符。每个运行的进程在系统中都有一个唯一的PID,如1、7、47等。

PPID (Parent Process ID): 创建当前进程的父进程的PID。例如,PID为7的进程是由PID为1的进程创建的。

C: 进程的nice值,表示进程的优先级。数值越低,优先级越高。默认为0,负值表示优先级高于普通进程,正值则相反。此处均为0,意味着都是标准优先级。

STIME (Start Time): 进程启动的时间。格式通常为HH:MM,如11:49表示上午11点49分启动。 TTY: 进程启动时所关联的终端设备。?表示该进程没有直接与终端关联,通常是后台进程或守护进程。pts/0表明进程在伪终端上运行,与用户交互。

TIME: 进程至今为止累计的CPU时间。格式如00:00:00,表示小时:分钟:秒。

CMD: 启动进程的命令行,展示了进程的实际执行命令及其参数。例如,/opt/conda/bin/python /opt/c 表示使用Python执行某个脚本。

按CPU使用率排序

In [3]:

代码语言:javascript复制
!
代码语言:javascript复制
ps -aux --sort -pcpu
代码语言:javascript复制
代码语言:javascript复制
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
mw             1  0.0  0.6 348720 54428 ?        Ssl  11:49   0:00 /opt/conda/bi
mw             7  0.0  0.0 187212  6152 ?        Sl   11:49   0:00 gotty --port 
mw            47  0.0  0.2  18004 17484 ?        S    11:49   0:00 ttyd -p 8896 
mw            55  0.0  0.6 577492 48644 ?        Ssl  11:50   0:00 /opt/conda/bi
mw            73  0.0  0.0   4580   932 pts/0    Ss   12:10   0:00 /bin/sh -c ps
mw            74  0.0  0.0  37904  3380 pts/0    R    12:10   0:00 ps -aux --sor

按内存使用排序:

In [5]:

代码语言:javascript复制
!
代码语言:javascript复制
ps -aux --sort -pmem
代码语言:javascript复制
代码语言:javascript复制
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
mw             1  0.0  0.6 348720 54428 ?        Ssl  11:49   0:00 /opt/conda/bi
mw            55  0.0  0.6 577900 48892 ?        Ssl  11:50   0:00 /opt/conda/bi
mw            47  0.0  0.2  18004 17484 ?        S    11:49   0:00 ttyd -p 8896 
mw             7  0.0  0.0 187212  6152 ?        Sl   11:49   0:00 gotty --port 
mw            76  0.0  0.0  37904  3372 pts/0    R    12:11   0:00 ps -aux --sor
mw            75  0.0  0.0   4580   876 pts/0    Ss   12:11   0:00 /bin/sh -c ps

查看指定进程的详细信息

In [7]:

代码语言:javascript复制
!
代码语言:javascript复制
ps -p 55 -o pid,ppid,user,%cpu,%mem,cmd
代码语言:javascript复制
代码语言:javascript复制
    PID    PPID USER     %CPU %MEM CMD
     55       1 mw        0.0  0.6 /opt/conda/bin/python -m ipykernel_launcher -

2. top - 动态系统监视器

top命令提供了一个实时的视图,展示系统中各个进程的资源占用情况,如CPU使用率、内存使用量等,是监控系统性能的强大工具

top 支持多种命令行选项来自定义启动时的行为,如 -d <秒> 可以设定刷新间隔时间,-b 用于批处理模式(非交互,输出到文件或管道),-n <次数> 则可以指定 top 命令运行的循环次数后自动退出

In [11]:

代码语言:javascript复制
!
代码语言:javascript复制
top
代码语言:javascript复制
=top - 12:14:44 up 24 min,  0 users,  load average: 0.00, 0.01, 0.01
Tasks:   6 total,   1 running,   5 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.5 us,  0.4 sy,  0.0 ni, 98.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  7864320 total,  7764420 free,    95492 used,     4408 buff/cache
KiB Swap:  7864320 total,  7864320 free,        0 used.  7682144 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME  COMMAND   
      1 mw        20   0  348720  54428  13844 S   0.0  0.7   0:00.72 jupyter-  
      7 mw        20   0  187212   6152   4976 S   0.0  0.1   0:00.00 gotty     
     47 mw        20   0   18004  17484    948 S   0.0  0.2   0:00.00 ttyd      
     55 mw        20   0  577900  48936  13412 S   0.0  0.6   0:00.52 python    
     85 mw        20   0    4580    840    680 S   0.0  0.0   0:00.09 sh        
     86 mw        20   0   40168   3576   3068 R   0.0  0.0   0:00.00 top       top - 12:14:47 up 24 min,  0 users,  load average: 0.00, 0.01, 0.01
Tasks:   6 total,   1 running,   5 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.9 us,  0.3 sy,  0.0 ni, 98.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  7864320 total,  7764896 free,    95012 used,     4412 buff/cache
KiB Swap:  7864320 total,  7864320 free,        0 used.  7682622 avail Mem 


     55 mw        20   0  577900  48936  13412 S   1.0  0.6   0:00.55 python    
      1 mw        20   0  348720  54428  13844 S   0.0  0.7   0:00.72 jupyter-  
      7 mw        20   0  187212   6152   4976 S   0.0  0.1   0:00.00 gotty     
     47 mw        20   0   18004  17484    948 S   0.0  0.2   0:00.00 ttyd      

     86 mw        20   0   40136   3596   3068 R   0.0  0.0   0:00.00 top       top - 12:14:50 up 24 min,  0 users,  load average: 0.00, 0.01, 0.01

%Cpu(s):  0.9 us,  0.2 sy,  0.0 ni, 98.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  7864320 total,  7764636 free,    95272 used,     4412 buff/cache
KiB Swap:  7864320 total,  7864320 free,        0 used.  7682362 avail Mem 


     55 mw        20   0  577900  48936  13412 S   1.0  0.6   0:00.58 python    





top - 12:14:53 up 24 min,  0 users,  load average: 0.00, 0.01, 0.01

%Cpu(s):  1.2 us,  0.4 sy,  0.0 ni, 98.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  7864320 total,  7764868 free,    95040 used,     4412 buff/cache
KiB Swap:  7864320 total,  7864320 free,        0 used.  7682594 avail Mem 


     55 mw        20   0  577900  48936  13412 S   1.0  0.6   0:00.61 python    





>

直接在终端输入top即可启动程序,以下是快捷方式 P:按CPU使用率排序进程。 M:按内存使用量排序进程。 h:显示帮助信息。 k:发送信号给进程,通常是用于结束进程。 r:改变进程的优先级。 q:退出 top。

3. kill - 终止进程

功能介绍:当你需要停止某个不响应或不再需要的进程时,kill命令就派上用场了。它通过发送特定信号给进程来结束其执行。

基本用法:

结束进程(通过PID):kill [信号] [PID] 常用信号:SIGTERM(默认,15) 用于正常终止,SIGKILL(9) 强制终止

In [ ]:

代码语言:javascript复制
# 正常尝试结束进程
代码语言:javascript复制
代码语言:javascript复制
kill 55
代码语言:javascript复制
# 如果进程没有响应,强制结束
代码语言:javascript复制
代码语言:javascript复制
kill -9 55
代码语言:javascript复制

上面的指令就不运行了,免得杀错进程把jupyter搞崩溃了

4. df - 磁盘空间统计

功能介绍:df命令用来显示文件系统的总空间、已用空间、可用空间及挂载点信息,帮助你管理磁盘空间。

基本用法:

查看所有挂载的文件系统空间使用情况:df -h

In [12]:

代码语言:javascript复制
!

df -h

代码语言:javascript复制
代码语言:javascript复制
                                                                     57G   12K   57G   1% /run/secrets/kubernetes.io/serviceaccount

5. du - 文件和目录磁盘使用情况

功能介绍:与df不同,du命令主要用于查看指定文件或目录所占的磁盘空间大小,特别适合查找占用大量空间的源头。

基本用法:

查看当前目录下各文件及子目录的磁盘使用情况:du -sh * 查看指定目录的总磁盘使用量:du -sh [目录名]评论

In [18]:

代码语言:javascript复制
!du -sh /home/mw/project
代码语言:javascript复制
0	/home/mw/project

小结

通过熟练运用这五个命令,你可以更加高效地监控和管理你的Linux系统,确保其稳定运行并有效利用资源

0 人点赞