Linux(五)__系统管理

介绍

通常, Windows 中使用"任务管理器"主要有 3 个目的:

  1. 利用"应用程序"和"进程"标签来査看系统中到底运行了哪些程序和进程;
  2. 利用"性能"和"用户"标签来判断服务器的健康状态;
  3. 在"应用程序"和"进程"标签中强制中止任务和进程;

Linux 中虽然使用命令进行进程管理,但是进程管理的主要目的是一样的,即查看系统中运行的程序和进程、判断服务器的健康状态和强制中止不需要的进程。

进程优先级:

  • 在 Linux 系统中,表示进程优先级的有两个参数:Priority (PRI )和 Nice(NI)
  • PRI 数值越小代表该进程越优先被 CPU 处理。
  • 其中PRI值是由内核动态调整的,用户不能直接修改。只能通过修改 NI 值来影响 PRI 值,间接地调整进程优先级。
  • PRI 和 NI 的关系如下:PRI (最终值) = PRI (原始值) + NI

修改 NI 值时有几个注意事项:

  • NI 范围是 -20~19。
  • 普通用户调整 NI 值的范围是 0~19,而且只能调整自己的进程。
  • 普通用户只能调高 NI 值,而不能降低。如原本 NI 值为 0,则只能调整为大于 0。
  • 只有 root 用户才能设定进程 NI 值为负值,而且可以调整任何用户的进程。
  • 默认情况下,进程的nice值为0。

进程启动

启动一个进程主要有 2 种途径,分别是通过手工启动和通过调度启动(事先进行设置,根据用户要求,进程可以自行启动)。

(1)手动启动

由用户输入命令直接启动一个进程,根据所启动的进程类型和性质的不同,其又可以细分为前台启动和后台启动 2 种方式。

1)前台启动方式

前台启动方式是手工启动进程最常用的方式,因为当用户输入一个命令并运行,就已经启动了一个进程,而且是一个前台的进程,此时系统其实已经处于一个多进程的状态(一个是 Shell 进程,另一个是新启动的进程)。

2)后台启动

进程直接从后台运行,用的相对较少,除非该进程非常耗时,且用户也不急着需要其运行结果的时候。

格式:在命令结尾处添加一个 " &" 符号(注意,& 前面有空格);

输入命令并运行之后,Shell 会提供给我们一个数字,此数字就是该进程的进程号。然后直接就会出现提示符,用户就可以继续完成其他工作,例如:

[root@localhost ~]# find / -name install.log &
[1] 1920
#[1]是工作号,1920是进程号

说明:手工启动 2 种方式的共同特点,就是新进程都是由当前 Shell 这个进程产生的。

(2)Linux调度启动过程

 在 Linux 系统中,任务可以被配置在指定的时间、日期或者系统平均负载量低于指定值时自动启动。通过 crontab、at 等命令实现。


进程_常用命令

ps命令

作用:查看系统中所有运行进程的详细信息。

基本格式:

[root@localhost ~]# ps aux
#查看系统中所有的进程,使用 BS 操作系统格式
[root@localhost ~]# ps -le
#查看系统中所有的进程,使用 Linux 标准命令格式

选项说明:

  • a:显示一个终端的所有进程,除会话引线外;
  • u:显示进程的归属用户及内存的使用情况;
  • x:显示没有控制终端的进程;
  • -l:长格式显示更加详细的信息;
  • -e:显示所有进程;

实例1:

 说明:

  • PID :进程的id。在linux中内核管理进程就得靠pid来识别和管理某一个程,比如我想终止某一个进程,则用 ‘kill 进程的pid’,有时并不能杀掉,则需要加一个-9选项了’kill -9 进程pid’
  • STAT :表示进程的状态,进程状态分为以下几种
    • D  不能中断的进程(通常为IO)
    • R  正在运行中的进程
    • S  已经中断的进程,通常情况下,系统中大部分进程都是这个状态
    • T  已经停止或者暂停的进程,如果我们正在运行一个命令,比如说sleep 10,如果我们按一下ctrl -z 让他暂停,那么我们用ps查看就会显示T这个状态
    • W 这个好像是说,从内核2.6xx 以后,表示为没有足够的内存页分配
    • X  已经死掉的进程(这个好像从来不会出现)
    • Z  僵尸进程,杀不掉,打不死的垃圾进程,占系统一小点资源,不过没有关系。如果太多,就有问题了。一般不会出现。
    • <  高优先级进程
    • N  低优先级进程
    • L   在内存中被锁了内存分页
    • s   主进程
    • l   多线程进程
    • +  代表在前台运行的进程

top命令

作用:可以动态地持续监听进程地运行状态,与此同时,该命令还提供了一个交互界面,用户可以根据需要,人性化地定制自己的输出,进而更清楚地了进程的运行状态。

基本格式:top [选项]

选项说明:

  • -d 秒数:指定 top 命令每隔几秒更新。默认是 3 秒;
  • -b:使用批处理模式输出。一般和"-n"选项合用,用于把 top 命令重定向到文件中;
  • -n 次数:指定 top 命令执行的次数。一般和"-"选项合用;
  • -p 进程PID:仅查看指定 ID 的进程;
  • -s:使 top 命令在安全模式中运行,避免在交互模式中出现错误;
  • -u 用户名:只监听某个用户的进程;

top命令:默认看到的只是 CPU 占比靠前的进程;

若想看到所有的进程,则可以把 top 命令的执行结果重定向到文件中。具体命令如下:

[root@localhost ~]# top -b -n 1 > /root/top.log
#让top命令只执行一次,然后把执行结果保存到top.log文件中,这样就能看到所有的进程。

在 top 命令的显示窗口中,还可以使用如下按键,进行一下交互操作:

  • ? 或 h:显示交互模式的帮助;
  • P:按照 CPU 的使用率排序,默认就是此选项;
  • M:按照内存的使用率排序;
  • N:按照 PID 排序;
  • T:按照 CPU 的累积运算时间排序,也就是按照 TIME+ 项排序;
  • k:按照 PID 给予某个进程一个信号。一般用于中止某个进程,信号 9 是强制中止的信号;
  • r:按照 PID 给某个进程重设优先级(Nice)值;
  • q:退出 top 命令; 
[root@localhost ~]# top
top - 12:26:46 up 1 day, 13:32, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 95 total, 1 running, 94 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.1%us, 0.1%sy, 0.0%ni, 99.7%id, 0.1%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 625344k total, 571504k used, 53840k free, 65800k buffers
Swap: 524280k total, 0k used, 524280k free, 409280k cached
PID   USER PR NI VIRT  RES  SHR S %CPU %MEM   TIME+ COMMAND
19002 root 20  0 2656 1068  856 R  0.3  0.2 0:01.87 top
1     root 20  0 2872 1416 1200 S  0.0  0.2 0:02.55 init
2     root 20  0    0    0    0 S  0.0  0.0 0:00.03 kthreadd
3     root RT  0    0    0    0 S  0.0  0.0 0:00.00 migration/0
4     root 20  0    0    0    0 S  0.0  0.0 0:00.15 ksoftirqd/0
5     root RT  0    0    0    0 S  0.0  0.0 0:00.00 migration/0
6     root RT  0    0    0    0 S  0.0  0.0 0:10.01 watchdog/0
7     root 20  0    0    0    0 S  0.0  0.0 0:05.01 events/0
8     root 20  0    0    0    0 S  0.0  0.0 0:00.00 cgroup
9     root 20  0    0    0    0 S  0.0  0.0 0:00.00 khelper
10    root 20  0    0    0    0 S  0.0  0.0 0:00.00 netns
11    root 20  0    0    0    0 S  0.0  0.0 0:00.00 async/mgr
12    root 20  0    0    0    0 S  0.0  0.0 0:00.00 pm
13    root 20  0    0    0    0 S  0.0  0.0 0:01.70 sync_supers
14    root 20  0    0    0    0 S  0.0  0.0 0:00.63 bdi-default
15    root 20  0    0    0    0 S  0.0  0.0 0:00.00 kintegrityd/0
16    root 20  0    0    0    0 S  0.0  0.0 0:02.52 kblockd/0
17    root 20  0    0    0    0 S  0.0  0.0 0:00.00 kacpid
18    root 20  0    0    0    0 S  0.0  0.0 0:00.00 kacpi_notify

说明:
top 命令的输出内容是动态的,默认每隔 3 秒刷新一次。命令的输出主要分为两部分:
第一部分是前五行,显示的是整个系统的资源使用状况,我们就是通过这些输出来判断服务器的资源使用状态的;
第二部分从第六行开始,显示的是系统中进程的信息;

第一部分:

  • 第一行为任务队列信息;
  • 第二行为进程信息;
  • 第三行为 CPU 信息;
  • 第四行为物理内存信息;
  • 第五行为交换分区(swap)信息;

第二部分:主要是系统进程信息,各个字段的含义如下:

  • PID:进程的 ID。
  • USER:该进程所属的用户。
  • PR:优先级,数值越小优先级越高。
  • NI:优先级,数值越小、优先级越高。
  • VIRT:该进程使用的虚拟内存的大小,单位为 KB。
  • RES:该进程使用的物理内存的大小,单位为 KB。
  • SHR:共享内存大小,单位为 KB。
  • S:进程状态。
  • %CPU:该进程占用 CPU 的百分比。
  • %MEM:该进程占用内存的百分比。
  • TIME+:该进程共占用的 CPU 时间。
  • COMMAND:进程的命令名。 

pstree命令

作用:以树形结构显示程序和进程之间的关系。

基本格式:pstree [选项] [PID或用户名]

选项说明:

选项含义
-a显示启动每个进程对应的完整指令,包括启动进程的路径、参数等。
-c不使用精简法显示进程信息,即显示的进程中包含子进程和父进程。
-n根据进程 PID 号来排序输出,默认是以程序名排序输出的。
-p显示进程的 PID。
-u显示进程对应的用户名称。

说明:

在使用 pstree 命令时,如果不指定进程的 PID 号,也不指定用户名称,则会以 init 进程为根进程,显示系统中所有程序和进程的信息;反之,若指定 PID 号或用户名,则将以 PID 或指定命令为根进程,显示 PID 或用户对应的所有程序和进程。

init 进程是系统启动的第一个进程,进程的 PID 是 1,也是系统中所有进程的父进程。

[root@lhyEdu ~]# pstree
systemd─┬─ModemManager───2*[{ModemManager}]
        ├─NetworkManager─┬─dhclient
        │                └─2*[{NetworkManager}]
        ├─VGAuthService
        ├─2*[abrt-watch-log]
        ├─abrtd
        ├─accounts-daemon───2*[{accounts-daemon}]
        ├─alsactl
        ├─atd
        ├─auditd─┬─audispd─┬─sedispatch
        │        │         └─{audispd}
        │        └─{auditd}
        ├─avahi-daemon───avahi-daemon
        ├─chronyd
        ├─crond
        ├─cupsd
        ├─dbus-daemon───{dbus-daemon}
        ├─dnsmasq───dnsmasq
        ├─gdm───3*[{gdm}]
        ├─gssproxy───5*[{gssproxy}]
        ├─irqbalance
        ├─ksmtuned───sleep
        ├─libvirtd───16*[{libvirtd}]
        ├─lsmd
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─polkitd───6*[{polkitd}]
        ├─rngd
        ├─rpcbind
        ├─rsyslogd───2*[{rsyslogd}]
        ├─rtkit-daemon───2*[{rtkit-daemon}]
        ├─smartd
        ├─sshd───sshd───bash───pstree
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        ├─udisksd───4*[{udisksd}]
        ├─upowerd───2*[{upowerd}]
        └─vmtoolsd───{vmtoolsd}

lsof命令

作用:根据文件找到对应的进程信息,也可以根据进程信息找到进程打开的文件。

基本格式: lsof [选项]

选项说明:

选项功能
-c 字符串只列出以字符串开头的进程打开的文件。
+d 目录名列出某个目录中所有被进程调用的文件。
-u 用户名只列出某个用户的进程打开的文件。
-p pid列出某个 PID 进程打开的文件。

实例1:#查询系统中所有进程调用的文件 

[root@lhyEdu ~]# lsof |more
COMMAND     PID   TID           USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
systemd       1                 root  cwd       DIR              253,0      4096          2 /
systemd       1                 root  rtd       DIR              253,0      4096          2 /
systemd       1                 root  txt       REG              253,0   1616360     535827 /usr/lib/systemd/systemd
systemd       1                 root  mem       REG              253,0     20112     416222 /usr/lib64/libuuid.so.1.3.0
systemd       1                 root  mem       REG              253,0    265624     416420 /usr/lib64/libblkid.so.1.1.0
systemd       1                 root  mem       REG              253,0     90248     415700 /usr/lib64/libz.so.1.2.7
systemd       1                 root  mem       REG              253,0    157424     
…省略部分输出…

实例2:#查询某个文件被哪个进程调用

[root@localhost ~]# lsof /sbin/init
COMMAND PID USER  FD  TYPE  DEVICE  SIZE/OFF  NODE    NAME
init               1     root    txt  REG   8,3      145180     130874   /sbin/init

实例3:#查看以httpd开头的进程调用了哪些文件

[root@localhost ~]# lsof -c httpd

COMMAND PID   USER   FD    TYPE   DEVICE  SIZE/OFF  NODE   NAME
httpd           4689 root     cwd  DIR     8,3       4096        2           /
httpd           4689 root     rtd    DIR     8,3       4096        2           /
httpd           4689 root     txt     REG    8,3       1797559  2855     /usr/local/apache2/bin/httpd
httpd           4689 root     mem REG    8,3       302300    665303 /lib/libfreebl3.so
httpd           4689 root     mem REG    8,3       58704      655087 /lib/libnss_files-2.12.s
httpd           4689 root     mem REG    8,3       142472    665291 /lib/ld-2.12.so
httpd           4689 root     mem REG    8,3       1889704  665292 /lib/libc-2.12.so
…省略部分输出…

使用“-c”选项可以查询以某个字符串开头的进程调用的所有文件,比如执行“lsof-c httpd”命令就会查询出以 httpd 开头的进程调用的所有文件。


nice命令

作用:给要启动的进程赋予 NI 值,进而调整进程的运行顺序。【但是不能修改已运行进程的 NI 值】

基本格式:nice [-n NI值] 命令

选项说明:-n NI值:给命令赋予 NI 值,该值的范围为 -20~19;

renice命令

作用:在进程运行时修改其 NI 值,从而调整优先级

基本格式: renice [优先级] PID

选项说明:此命令中使用的是进程的 PID 号,因此常与 ps 等命令配合使用


kill命令

作用:向操作系统内核发送一个信号(多是终止信号)和目标进程的 PID,然后系统内核根据收到的信号类型,对指定进程进行相应的操作。

基本格式:kill [信号] PID

常用信号说明:

信号编号信号名含义
0EXIT 程序退出时收到该信息。
1HUP挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。
2INT表示结束进程,但并不是强制性的,常用的 "Ctrl+C" 组合键发出就是一个 kill -2 的信号。
3QUIT退出。
9KILL杀死进程,即强制结束进程。
11SEGV 段错误。
15TERM正常结束进程,是 kill 命令的默认信号。

 killall命令

作用:通过程序的进程名来杀死一类进程;该命令常与 ps、pstree 等命令配合使用。

基本格式:killall [选项] [信号] 进程名

选项说明:

  • -i:交互式,询问是否要杀死某个进程;
  • -I:忽略进程名的大小写;

pkill命令

作用:和 killall 命令的用法相同,都是通过进程名杀死一类进程。还可以按照终端号来踢出用户登录。

基本格式一:pkill [信号] 进程名

基本格式二:pkill [-t 终端号] 进程名

选项说明:

  • [-t 终端号] 选项用于按照终端号踢出用户

jobs命令

作用:可以用来查看当前终端放入后台的工作;

基本格式:jobs [选项]

选项说明:

选项含义
-l(L 的小写)列出进程的 PID 号。
-n只列出上次发出通知后改变了状态的进程。
-p只列出进程的 PID 号。
-r只列出运行中的进程。
-s只列出已停止的进程。

 例如:

[root@localhost ~]#jobs -l
[1]- 2023 Stopped top
[2]+ 2034 Stopped tar -zcf etc.tar.gz /etc

可以看到,当前终端有两个后台工作:一个是 top 命令,工作号为 1,状态是暂停,标志是"-";另一个是 tar 命令,工作号为 2,状态是暂停,标志是"+"。"+"号代表最近一个放入后台的工作,也是工作恢复时默认恢复的工作。"-"号代表倒数第二个放入后台的工作,而第三个以后的工作就没有"+-"标志了。

一旦当前的默认工作处理完成,则带减号的工作就会自动成为新的默认工作,换句话说,不管此时有多少正在运行的工作,任何时间都会有且仅有一个带加号的工作和一个带减号的工作。


fg命令

作用:用于把后台工作恢复到前台执行

基本格式:fg %工作号

注意:在使用此命令时,% 可以省略,但若将% 工作号全部省略,则此命令会将带有 + 号的工作恢复到前台。另外,使用此命令的过程中, % 可有可无。


bg命令

作用:把后台暂停的工作恢复到后台执行

基本格式:bg %工作号 

选项说明:% 可以省略


nohup命令

作用:让后台工作在离开操作终端时,也能够正确地在后台执行

基本格式: nohup [命令] &

选项说明:‘&’表示此命令会在终端后台工作;反之,如果没有‘&’,则表示此命令会在终端前台工作


任务计划_常用命令 

at命令

作用:

  • 只要指定正确的时间,就可以输入需要在指定时间执行的命令。这个命令可以是系统命令,也可以是 Shell 脚本。【最好使用绝对路径来写命令,这样不容易报错】
  • at 任务一旦使用 Ctrl+D 快捷键保存,实际上写入了 /var/spool/at/ 这个目录,这个目录内的文件可以直接被 atd 服务调用和执行。

基本格式:at [选项] [时间]

选项说明:

选项含义
-m当 at 工作完成后,无论命令是否输出,都用 E-mail 通知执行 at 命令的用户。
-c 工作标识号显示该 at 工作的实际内容。
-t 时间在指定时间提交工作并执行,时间格式为 [[CC]YY]MMDDhhmm。
-d删除某个工作,需要提供相应的工作标识号(ID),同 atrm 命令的作用相同。
-l列出当前所有等待运行的工作,和 atq 命令具有相同的额作用。
-f 脚本文件指定所要提交的脚本文件。

at 命令时间参数说明:

格式用法
HH:MM比如 04:00 AM。如果时间已过,则它会在第二天的同一时间执行。
Midnight(midnight)代表 12:00 AM(也就是 00:00)。
Noon(noon)代表 12:00 PM(相当于 12:00)。
Teatime(teatime)代表 4:00 PM(相当于 16:00)。
英文月名 日期 年份比如 January 15 2018 表示 2018 年 1 月 15 号,年份可有可无。
MMDDYY、MM/DD/YY、MM.DD.YY比如 011518 表示 2018 年 1 月 15 号。
now+时间以 minutes、hours、days 或 weeks 为单位,例如 now+5 days 表示命令在 5 天之后的此时此刻执行。

atq 命令和 atrm 命令。atq 命令用于查看当前等待运行的工作,atrm 命令后者用于删除指定的工作 。

说明:

使用at命令:需提前安装好 at 软件包,并开启 atd 服务。

at 命令的访问控制是依靠 /etc/at.allow(白名单)和 /etc/at.deny(黑名单)这两个文件来实现的,具体规则如下:

  • 如果系统中有 /etc/at.allow 文件,那么只有写入 /etc/at.allow 文件(白名单)中的用户可以使用 at 命令,其他用户不能使用 at 命令(注意,/etc/at.allow 文件的优先级更高,也就是说,如果同一个用户既写入 /etc/at.allow 文件,又写入 /etc/at.deny 文件,那么这个用户是可以使用 at 命令的)。
  • 如果系统中没有 /etc/at.allow 文件,只有 /etc/at.deny 文件,那么写入 /etc/at.deny 文件(黑名单)中的用户不能使用 at 命令,其他用户可以使用 at 命令。不过这个文件对 root 用户不生效。
  • 如果系统中这两个文件都不存在,那么只有 root 用户可以使用 at 命令。

系统中默认只有 /etc/at.deny 文件,而且这个文件是空的,因此,系统中所有的用户都可以使用 at 命令。不过,如果我们打算控制用户的 at 命令权限,那么只需把用户写入 /etc/at.deny 文件即可。

 /etc/at.allow 文件的优先级更高,如果 /etc/at.allow 文件存在,则 /etc/at.deny 文件失效。


crontab命令

作用:执行循环定时任务。

基本格式:crontab [选项] [file]

选项说明:

选项功能
-u user用来设定某个用户的 crontab 服务,例如 "-u demo" 表示设备 demo
用户的 crontab 服务,此选项一般有 root 用户来运行。
-e编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件。
-l显示某用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab 文件内容。
-r 从 /var/spool/cron 删除某用户的 crontab 文件,如果不指定用户,则默认删除当前用户的 crontab 文件。 
-i在删除用户的 crontab 文件时,给确认提示。

 crontab 时间参数说明:

项目含义范围
第一个"*"一小时当中的第几分钟(minute)0~59
第二个"*"一天当中的第几小时(hour)0~23
第三个"*"一个月当中的第几天(day)1~31
第四个"*"一年当中的第几个月(month)1~12
第五个"*"一周当中的星期几(week)0~7(0和7都代表星期日)

时间特殊符号:

特殊符号含义
*(星号)代表任何时间。比如第一个"*"就代表一小时种每分钟都执行一次的意思。
,(逗号)代表不连续的时间。比如"0 8,12,16***命令"就代表在每天的 8 点 0 分、12 点 0 分、16 点 0 分都执行一次命令。
-(中杠)代表连续的时间范围。比如"0 5 ** 1-6命令",代表在周一到周六的凌晨 5 点 0 分执行命令。
/(正斜线)代表每隔多久执行一次。比如"*/10****命令",代表每隔 10 分钟就执行一次命令。

系统管理_常用命令 

vmstat命令

作用:可用来监控 CPU 使用、进程状态、内存使用、虚拟内存使用、硬盘输入/输出状态等信息

基本格式:

[root@localhost ~]# vmstat [-a] [刷新延时 刷新次数]
[root@localhost ~]# vmstat [选项] 

选项说明:

选项含义
-fs-f:显示从启动到目前为止,系统复制(fork)的程序数,此信息是从 /proc/stat 中的 processes 字段中取得的。
-s:将从启动到目前为止,由一些事件导致的内存变化情况列表说明。
-S 单位令输出的数据显示单位,例如用 K/M 取代 bytes 的容量。
-d列出硬盘有关读写总量的统计表。
-p 分区设备文件名查看硬盘分区的读写情况。
[root@lhyEdu ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 3421772  27204 407716    0    0    49     4   34   42  0  0 99  0  0

 1)procs 显示进程相关信息

  • r :表示运行和等待cpu时间片的进程数,如果长期大于服务器cpu的个数,则说明cpu不够用了;
  • b :表示等待资源的进程数,比如等待I/O, 内存等,这列的值如果长时间大于1,则需要你关注一下了;

2)memory 内存相关信息

  • swpd :表示切换到交换分区中的内存数量 ;
  • free :当前空闲的内存数量;
  • buff :缓冲大小,(即将写入磁盘的);
  • cache :缓存大小,(从磁盘中读取的);

3)swap 内存交换情况

  • si :由内存进入交换区的数量;
  • so :由交换区进入内存的数量;

4)io 磁盘使用情况

  • bi :从块设备读取数据的量(读磁盘);
  • bo: 从块设备写入数据的量(写磁盘);

5)system 显示采集间隔内发生的中断次数

  • in :表示在某一时间间隔中观测到的每秒设备中断数;
  • cs :表示每秒产生的上下文切换次数;

6)CPU 显示cpu的使用状态

  • us :显示了用户下所花费 cpu 时间的百分比;
  • sy :显示系统花费cpu时间百分比;
  • id :表示cpu处于空闲状态的时间百分比;
  • wa :表示I/O等待所占用cpu时间百分比;
  • st :表示被偷走的cpu所占百分比(一般都为0,不用关注);

说明:

如果磁盘io压力很大时,si, so两列的数值会比较高,若同时在不断变化时,说明内存不够了,内存中的数据频繁交换到交换分区中,这往往对系统性能影响极大。 


dmesg命令

作用:用于查看系统的硬件信息

基本格式:dmesg

选项说明:除此之外,开机信息也可以通过 /var/log/ 目录中的 dmesg 文件进行查看


free命令

作用:用来显示系统内存状态,包括系统物理内存、虚拟内存(swap 交换分区)、共享内存和系统缓存的使用情况,其输出和 top 命令的内存部分非常相似。

基本格式:free [选项]

选项说明:

选项含义
-b以 Byte(字节)为单位,显示内存使用情况。
-k以 KB 为单位,显示内存使用情况,此选项是 free 命令的默认选项。
-m以 MB 为单位,显示内存使用情况。
-g以 GB 为单位,显示内存使用情况。
-t在输出的最终结果中,输出内存和 swap 分区的总量。
-o不显示系统缓冲区这一列。
-s 间隔秒数根据指定的间隔时间,持续显示内存使用情况。
[root@lhyEdu ~]# free
              total        used        free      shared  buff/cache   available
Mem:        4026376      174656     3416752       12244      434968     3564104
Swap:       2097148           0     2097148

说明:
当前系统内存总大小为4026376(单位是k)已经使用174656,剩余3416752。其实真正剩余并不是这个3416752,而是第二行的2097148,真正使用的也是第二行的2097148。

因为系统初始化时,就已经分配出很大一部分内存给缓存,这部分缓存用来随时提供给程序使用,如果程序不用,那这部分内存就空闲。所以,查看内存使用多少,剩余多少请看第二行的数据。

另外你还可以加-m 或者-g选项分别以M或G为单位打印内存使用状况。

w命令

作用:查看服务器上目前已登录的用户信息,还可以知道每个用户执行任务的情况。

基本格式: 

w [选项] [用户名]

选项说明:

选项含义
-h不显示输出信息的标题
-l用长格式输出
-s用短格式输出,不显示登陆时间,JCPU 和 PCPU 时间
-V显示版本信息
[root@lhyEdu ~]# w
 10:36:56 up 25 min,  1 user,  load average: 0.00, 0.01, 0.06
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.58.1     10:12    0.00s  0.14s  0.02s w

说明:

  • 第一行从左面开始显示的信息依次为:时间,系统运行时间,登录用户数,平均负载。
  • 第二行开始以及下面所有的行,告诉我们的信息是,当前登录的都有哪些用户,以及他们是从哪里登录的等等。
  • 第一行中的’load average:’后面的三个数值。第一个数值表示1分钟内系统的平均负载值;第二个数值表示5分钟内系统的平均负载值;第三个数值表示15分钟系统的平均负载值。这个值的意义是,单位时间段内CPU活动进程数。当然这个值越大就说明你的服务器压力越大。一般情况下这个值只要不超过你服务器的cpu数量就没有关系。【/proc/cpuinfo文件记录cpu的详细信息】

查看服务器有几个cpu:cat /proc/cpuinfo


who命令

作用:查看服务器上目前已登录的用户信息

基本格式: who [选项] [file]

选项说明:

选项含义
-a列出所有信息,相当于所有选项。
-b列出系统最近启动的时间日期。
-l列出所有可登陆的终端信息。
-m仅列出关于当前终端的信息,who -m 命令等同于 who am i
-q列出在本地系统上的用户和用户数的清单。
-r显示当前系统的运行级别。
-s仅显示名称、线路和时间字段信息,这是 who 命令的默认选项。
-u显示当前每个用户的用户名、登陆终端、登陆时间、线路活动和进程标识。
-T 或 -w显示 tty 终端的状态,“+”表示对任何人可写,“-”表示仅对 root 用户或所有者可写,“?”表示遇到线路故障。

last和lastlog命令

作用:last 命令可以查看当前和过去登陆系统用户的相关信息;lastlog 命令可以查看到每个系统用户最近一次登陆系统的时间。

基本格式:

last [选项]

lastlog

选项说明:

 last 命令常用选项及含义

选项含义
-a把从何处登陆系统的主机名或 IP 地址显示在最后一行。
-R不显示登陆系统的主机名或 IP 地址。
-x显示系统关机、重新开机以及执行等级的改变等信息。
-n 显示列数设置列出信息的显示列数。
-d将显示的 IP 地址转换成主机名称。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

国际章真厉害,离婚后仍带汪峰继女小苹果赴日滑雪。

♥ 为方便您进行讨论和分享&#xff0c;同时也为能带给您不一样的参与感。请您在阅读本文之前&#xff0c;点击一下“关注”&#xff0c;非常感谢您的支持&#xff01; 文 |猴哥聊娱乐 编 辑|徐 婷 校 对|侯欢庭 在如今这个纷繁复杂的社会中&#xff0c;家庭关系和亲子关系的…

K8S | 全面解读CKA认证的重要性!

K8S认证工程师&#xff08;CKA&#xff09;备考与学习指南https://blog.csdn.net/XMWS_IT/article/details/133697915?ops_request_misc%257B%2522request%255Fid%2522%253A%2522170849020616800182129977%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2…

在VS里使用C#制作窗口应用

新建项目 创建项目的时候搜索net&#xff0c;选择这个。 打开应该是这样 第一个控件 选择公共控件 - PictureBox - 拖入Form 在Image处选择上传本地资源&#xff0c;建议上传一个小一点的图片。 修改一下尺寸。 ctrls 保存 从“属性”切换到“事件” 双击Click事件…

学习并理解SQL注入问题

一、什么是sql注入 public class TestSql {public static void main(String[] args) {Scanner inScanner new Scanner(System.in);System.out.println("请输入用户名");String username inScanner.nextLine();System.out.println("请输入密码");String …

【RN】为项目使用React Navigation中的navigator

简言 移动应用基本不会只由一个页面组成。管理多个页面的呈现、跳转的组件就是我们通常所说的导航器&#xff08;navigator&#xff09;。 React Navigation 提供了简单易用的跨平台导航方案&#xff0c;在 iOS 和 Android 上都可以进行翻页式、tab 选项卡式和抽屉式的导航布局…

防御第六次作业-防火墙综合实验(av、url过滤、dns过滤)

目录 拓扑图&#xff1a; 要求&#xff1a; 8 9 10 11 拓扑图 要求 前7个要求在上一篇博客&#xff1b; 8.分公司内部的客户端可以通过域名访问到内部的服务器 9.假设内网用户需要通过外网的web服务器和pop3邮件服务器下载文件和邮件&#xff0c;内网的FTP服务器也需要…

安装unget包 sqlsugar时报错,完整的报错解决

前置 .net6的开发环境 问题 ? 打开unget官网&#xff0c;搜索报错的依赖Oracle.ManagedDataAccess.Core unget官网 通过unget搜索Oracle.ManagedDataAccess.Core查看该依赖的依赖 发现应该是需要的依赖Oracle.ManagedDataAccess.Core(>3.21.100)不支持.net6的环境 解…

加载arcgis切片服务网络请求有大量404错误

需求&#xff1a; 前端访问arcgis切片服务时&#xff0c;在网络请求中出现大量404&#xff08;Not Found&#xff09;错误&#xff0c;切片时设置了感兴趣区域&#xff0c;在感兴趣范围内请求切片时能够正常返回切片。 问题分析&#xff1a; 设置感兴趣区域切片的目的是减少站…

基于Mapbox展示GDAL处理的3D行政区划展示实践

目录 前言 一、Gdal数据处理 1、数据展示 2、Java数据转换 二、Mapbox可视化 1、定义Mapbox地图 2、地图初始化 3、创建地图 三、界面优化 1、区域颜色设置 2、高度自适应和边界区分 3、中文标注 总结 前言 最近有遇到一个需求&#xff0c;用户想在地图上把行政区划…

IP地理位置查询定位:技术原理与实际应用

在互联网时代&#xff0c;IP地址是连接世界的桥梁&#xff0c;而了解IP地址的地理位置对于网络管理、个性化服务以及安全监控都至关重要。IP数据云将深入探讨IP地理位置查询定位的技术原理、实际应用场景以及相关的隐私保护问题&#xff0c;旨在为读者提供全面了解和应用该技术…

海外媒体发稿:提高用户留存率的7个链游媒体宣发推广策略-华媒舍

在当今数字化时代&#xff0c;移动链游已经成为人们生活中不可或缺的一部分。随着链游市场日益竞争激烈&#xff0c;如何提高用户留存率成为了游戏开发者和媒体宣发人员需要面对的重要问题。本文将为您介绍7个有效的链游媒体宣发推广策略&#xff0c;帮助您提高用户留存率。 1.…

Unity编辑器扩展之Text组件中字体替换工具

想要批量化替换项目预制体资源中Text组件引用的Font字体文件&#xff0c;可以采用以下步骤。 1、在项目的Editor文件中&#xff0c;新建一个名为FontToolEditor的C#脚本文件&#xff0c;然后把以下代码复制粘贴到新建的FontToolEditor的C#脚本文件中。 using System.Collect…

哪款护眼台灯适合孩子用?五大爆款选购指南分享

护眼台灯凭借各种好处让很多家长都为孩子选择。但是许多想要选择护眼台灯的家长们&#xff0c;各种台灯不能盲目入手&#xff0c;因为市面上存在各种生产实力不足&#xff0c;做工差&#xff0c;以及选材廉价等问题的劣质产品。那么护眼台灯要怎么选&#xff1f;关于这个问题&a…

2024牛客寒假算法基础集训营4(视频讲解题目)

2024牛客寒假算法基础集训营4&#xff08;视频讲解题目&#xff09; 视频链接ABCDEFG、H&#xff08;下面是hard版本的代码两个都可以过&#xff09; 视频链接 2024牛客寒假算法基础集训营4&#xff08;视频讲解题目&#xff09; A #include<bits/stdc.h> #define en…

在Win系统部署WampServer并实现公网访问本地服务【内网穿透】

目录 推荐 前言 1.WampServer下载安装 2.WampServer启动 3.安装cpolar内网穿透 3.1 注册账号 3.2 下载cpolar客户端 3.3 登录cpolar web ui管理界面 3.4 创建公网地址 4.固定公网地址访问 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0…

Windows系统安全策略设置之本地NTLM重放提权

经安全部门研究分析&#xff0c;近期利用NTLM重放机制入侵Windows 系统事件增多&#xff0c;入侵者主要通过Potato程序攻击拥有SYSTEM权限的端口伪造网络身份认证过程&#xff0c;利用NTLM重放机制骗取SYSTEM身份令牌&#xff0c;最终取得系统权限&#xff0c;该安全风险微软并…

vue3 用xlsx 解决 excel 低版本office无法打开问题

需求背景解决思路解决效果将json导出为excel将table导为excel导出样式 需求背景 原使用 vue3-json-excel &#xff0c;导致在笔记本office环境下&#xff0c;出现兼容性问题 <vue3-json-excel class"export-btn" :fetch"excelGetList" :fields"js…

国际贸易报关需要向海关提交哪些资料 | 全球数字贸易发展联盟 | 箱讯科技

1、进出口货物报关单。一般进口货物应填写一式二份;需要由海关核销的货物&#xff0c;如加工贸易货物和保税货物等&#xff0c;应填写专用报关单一式三份;货物出口后需国内退税的&#xff0c;应另填一份退税专用报关单。 2、货物发票。要求份数比报关单少一份&#xff0c;对货…

OpenProject 安装迁移

文章目录 1、概要2、备份3、新服务器安装OpenProject4、新服务器安装Postgresql5、旧服务器数据转移到新服务器5.1、转移attachments附件5.2、转移conf配置文件5.3、转移存储库5.4、导入Postgres数据库 6、openproject配置 1、概要 注意&#xff1a;本文仅适用于 DEB/RPM 包安…

高品质定制线缆厂家推荐:精工电联-打造智能智造的线缆解决方案(线缆定制流程)

高品质定制线缆厂家&#xff1a;精工电联-打造智能智造的线缆解决方案&#xff08;定制线缆定制流程&#xff09; 精工电联 在百年未有之大变局的当下&#xff0c;科技发展日新月异的今天&#xff0c;智能制造正在改变着各行各业的生产及人们的生活方式。作为线缆制造领域的领先…
最新文章