一.命令:uptime
uptime:打印当前时间,系统运行多久,当前用户登录和系统平均负载
语法:uptime
[root@localhost ~]# uptime 02:13:06 up 27 min, 1 user, load average: 0.00, 0.00, 0.00
从以上信息可以看出,目前的系统时间为2:13分6秒,系统已运行27分钟,目前有一个用户在登录,cpu负载一分钟、五分钟、十五分钟的负载分别显示,这里的负载表示单位时间段内的负载cpu等待队列平均有多少个过程在等待,等待的过程越多,说明cpu越忙
二.命令:free
free:显示系统内存和交换分区信息
语法: free [选项]
选项:
-b 输出容量为:Byte
-k 输出容量为:KB
-m 输出容量为:MB
[root@localhost ~]# free -m total used free shared buff/cache available Mem: 1104 289 366 7 448 639 Swap: 2047 0 2047
Linux启动后,部分内存将提前提取为buffer于cache以后随时提供进程使用。以上输出信息:
Mem行是内存的使用情况:
total 列显示系统的总可用物理内存和交换空间大小;
used 列显示已使用的物理内存和交换空间;
free 列显示有多少物理内存和交换空间可用;
shared 列显示被共享使用的物理内存大小;
buff/cache 列显示被buffer和cache 使用的物理内存大小;
Swap行是交换空间的使用情况:
三.监控网络的使用
3.1可查看网卡接口信息
在Linux中以太网卡通常被标识为ens160,第一张以太网卡etho,以太网卡为第二块eth1,依次类推
[root@localhost ~]# ifconfig ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.43.132 netmask 255.255.255.0 broadcast 192.168.43.255 inet6 fe80::7612:336a:ba88:3369 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:94:3a:55 txqueuelen 1000 (Ethernet) RX packets 2785 bytes 214435 (209.4 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 3322 bytes 476147 (464.9 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 12 bytes 656 (656.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 12 bytes 656 (656.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@localhost ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:0c:29:94:3a:55 brd ff:ff:ff:ff:ff:ff inet 192.168.43.132/24 brd 192.168.43.255 scope global dynamic noprefixroute ens160 valid_lft 1271sec preferred_lft 1271sec inet6 fe80::7612:336a:ba88:3369/64 scope link noprefixroute valid_lft forever preferred_lft forever
3.2 打印网络链接、路由表、网络接口统计等信息
语法:netstat [选项]
选项:
-s 显示各协议数据统计信息
-n 使用数字形式IP、端口号,用户ID更换主机、协议、用户等名称信息
-p 显示过程名称及相应过程ID
-i 只显示监听shocket接口信息
-u 查看udp链接信息
-t 查看tcp链接信息
[root@localhost ~]# netstat -nltp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1026/sshd tcp6 0 0 :::80 :::* LISTEN 25869/httpd tcp6 0 0 :::22 :::* LISTEN 1026/sshd
四.使用监控过程
4.1 查看当前流程信息语法:ps [选项]
选项:
-e 在-A同样的效果
-a 显示包括其他用户在内的现有终端下的所有流程
-u 以用户为主的过程状态
-x 通常与a参数一起使用,可以列出更完整的信息。
[root@localhost ~]# ps -aux root 1387 0.0 0.8 93912 9644 ? Ss 01:45 0:00 /usr/lib/systemd/systemd --user root 1393 0.0 0.4 152784 4716 ? S 01:45 0:00 (sd-pam) root 1420 0.0 0.4 153368 5456 ? S 01:45 0:00 sshd: root@pts/0 root 1428 0.0 0.3 26216 3900 pts/0 Ss 01:45 0:00 -bash root 20478 0.0 0.0 0 0 ? I 01:52 0:00 [kworker/u256:0] root 25869 0.0 0.3 86908 4400 ? Ss 01:57 0:00 /usr/local/apache2/bin/httpd daemon 25870 0.0 0.9 862580 10988 ? Sl 01:57 0:00 /usr/local/apache2/bin/httpd daemon 25871 0.0 0.6 862580 7028 ? Sl 01:57 0:00 /usr/local/apache2/bin/httpd daemon 25872 0.0 0.9 862580 10992 ? Sl 01:57 0:00 /usr/local/apache2/bin/httpd daemon 25988 0.0 0.9 862580 11108 ? Sl 01:57 0:00 /usr/local/apache2/bin/httpd daemon 25988 0.0 0.9 862580 11108 ? Sl 02:03 0:00 /usr/local/apache2/bi/httpd
root 26199 0.0 0.0 0 0 ? I 04:46 0:00 [kworker/0:2-events_power_efficient]
root 26204 0.0 0.0 0 0 ? I 04:59 0:00 [kworker/0:1-events_power_efficient]
root 26225 0.0 0.0 0 0 ? I 05:04 0:00 [kworker/0:0-events_power_efficient]
root 26226 0.0 0.3 61608 4024 pts/0 R+ 05:09 0:00 ps -aux
#ps结合grep过滤出想要查看的服务信息
[root@localhost ~]# ps -aux | grep ssh
DID/U6ER 代表进程的执行用户
PID 为进程唯一编号
C CPU使用的资源百分比
PPTD 代表父进程ID编号
%CPU 代表进程的cpu占用率
%MEM 代表进程的内存占用军
VSZ 代表进程所使用的虚拟内存大小(单位:KB)
RSS 代表进程所使用的真实的内存大小(单位:EB)
TTY 该进程是在那个终端机上面运作.若与终端机无关.则显示?。另外, tty1-tty6是本机上面的登入者程序,若为pts/0等等的,则表示为由网络连接进主机的程序。
STINE/START 代表进程启动时间
STAT 代表进程状态(D∶不可中断的进程,R:正在运行的进程,S∶正在睡眠的进程,T∶停止或被追踪的进程,X∶死掉的进程,z:僵尸进程)
TIME 代表进程占有CPU的总时间
CMD/COMMAND 代表进行命令
4.2 动态查看进程信息
语法: top [选项]
选项:
-d top刷新间隔,默认为3s
-p 查看指定的PID的进程信息
通过top命令可以动态查看进程信息,默认按cpu使用率排序,输入
M 可以按照内存使用率排序
N 可以按照进程号排序
z 可以高亮显示颜色
[root@localhost ~]# top
top - 05:55:09 up 4:09, 1 user, load average: 0.00, 0.00
Tasks: 197 total, 2 running, 195 sleeping, 0 stopped,
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 99.6 id, 0.0 wa, 0.4
MiB Mem : 1104.0 total, 350.8 free, 291.8 used,
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used.
PID USER PR NI VIRT RES SHR S %CPU
26264 root 20 0 0 0 0 I 0.0
26263 root 20 0 65384 4880 4028 R 0.4
26261 root 20 0 0 0 0 I 0.0
26240 root 20 0 0 0 0 I 0.0
25988 daemon 20 0 862580 11108 3656 S 0.0
25872 daemon 20 0 862580 10992 3584 S 0.0
25871 daemon 20 0 862580 7028 3652 S 0.0
Help for color mapping - procps-ng 3.3.15
显示与uptime命令相似的输出(可以使用"命令切换uptime的显示)
这些字段显示:
。当前时间
。系统已运行的时间
。当前登录用户的数量
。相应最近5、10和15分钟内的平均负载。
显示的是任务或者进程的总结。进程可以处于不同的状态。这里显示了全部进程的数量。除此之外,还有正在运行、睡眠、停止、僵尸进程的数量(僵尸是一种进程的状态)。这些进程概括信息可以用't'切换显示
Tasks—任务(进程),系统现在共有194个进程,其中处于运行中的有2个,192个在休眠(sleep) , stoped状态的有0个,zombie状态(僵尸)的有0个。
显示不同模式下所占cpu时间百分比(可以使用t'命令切换显示),这些不同的cpu时间表示:
o us, user:运行(未调整优先级的)用户进程的CPU时间
o sy,system:运行内核进程的CPU时间
o ni,niced:运行已调整优先级的用户进程的CPU时间
o wa,IO wait:用于等待l0完成的CPU时间
o id :空闲cpu百分比
o hi:处理硬件中断的CPU时间
o si:处理软件中断的CPU时间
o st:这个虚拟机被hypervisor愉去的CPU时间(译注∶如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)
显示内存使用率(内存显示可以用'm'命令切换),有点像"'free'命令。第一行是物理内存使用,第二行是虚拟内存使用(交换空间)。
物理内存显示如下:全部可用内存、已使用内存、空闲内存、缓冲内存。相似地︰交换部分显示的是︰全部、已使用、空闲和缓冲交换空间。
第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。
如果出于习惯去计算可用内存数,这里有个近似的计算公式:第四行的free +第四行的buffers+第五行的cached
各进程(任务)的状态监控
PID USER PR NI VIRT RES SHR %CPU %MEM TINE+COMMAND
l root 20 0 178672 13452 8384 s 0.0 0.7 0:02.16 systemd
PID:进程ID,进程的唯一标识符
USER︰进程所有者的实际用户名。
PR︰进程的调度优先级。这个字段的一些值是'rt '。这意味这这些进程运行在实时态。
NI∶进程的nice值(优先级)。越小的值意味着越高的优先级。负值高优先级,正值表示低优先级
VIRT︰进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES∶驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR︰SHR是进程使用的共享内存。共享内存大小,理位kb
S:这个是进程的状态。它有以下不同的值:
- D — 不可中断的睡眠态。
- R 一 运行态
- s 一 睡眠态
- T ― 被跟踪或已停止
- z ― 僵尸态
%CPU:自从上一次更新时到现在任务所使用的CUP时间百分比。
%MEM:进程使用的可用物理内存百分比。
TIME+∶任务启动后到现在所使用的全部cPu时间,精确到百分之一秒
COMMAND:运行进程所使用的命令。进程名称(命令名/命令行)
还有许多在默认情况下不会显示的输出,它们可以显示进程的页错误、有效组和组ID和其他更多的信息。
五.网络故障排除
5.1
当网络不通的时候可以使用简单的ping命令来定位问题节点的位置,一般会按照顺序进行ping命令,以此为本地回环、本地IP、网IP、外网IP、ping的对象一般都会给予回应,没有回应则表示网路不通。(但是在某些环境下,对象主机会禁止使用ping命令)
[root@localhost ~]# ping www.baidu.com
PING www.a.shifen.com (36.152.44.96) 56(84) bytes of data.
64 bytes from 36.152.44.96 (36.152.44.96): icmp_seq=1 ttl=128 time=30.9 ms
64 bytes from 36.152.44.96 (36.152.44.96): icmp_seq=2 ttl=128 time=29.7 ms
64 bytes from 36.152.44.96 (36.152.44.96): icmp_seq=3 ttl=128 time=30.5 ms
^C
[root@localhost ~]# ping 192.168.110.1
5.2
一个数据包从本地出发后一般会经过多个路由转发器,如果有一个数据包进入互联网后因为中间的某个路由转发出现问题,从而导致最终的数据发送失败,这种情况下,我们并不知道是那个路由出现问题,也不知道具体的lp信息是什么,利用traceroute可以来协助排查
[root@localhost ~]# traceroute www.baidu.com
traceroute to www.baidu.com (36.152.44.95), 30 hops max, 60 byte packets
1 _gateway (192.168.43.2) 1.041 ms 0.968 ms 0.911 ms
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
5.3
网络本身是使用lp地址来唯一对应网络资源的,但用户是无法记忆这么多IP的信息的,所以,一般都是通过域名来访问网络资源的,此时就用到了DNS服务器,使用nslookup可以帮助检查本地设置的DNS服务器工作是否正常。
[root@localhost ~]# nslookup baidu.com
-bash: nslookup: command not found
[root@localhost ~]# yum provides nslookup
"""
Last metadata expiration check: 1:43:23 ago on Tue 19 Jul 2022 07:00:51 AM EDT.
bind-utils-32:9.11.20-5.el8.x86_64 : Utilities for querying
: DNS name servers
Repo : RHEL8-AppStream
Matched from:
Filename : /usr/bin/nslookup
bind-utils-32:9.11.26-6.el8.x86_64 : Utilities for querying
: DNS name servers
Repo : AppStream
Matched from:
Filename : /usr/bin/nslookup
"""
[root@localhost ~]# yum install -y bind-utils
Updating Subscription Management repositories.
Unable to read consumer identity
[root@localhost ~]# nslookup baidu.com
Server: 192.168.43.2
Address: 192.168.43.2#53
Non-authoritative answer:
Name: baidu.com
Address: 220.181.38.251
Name: baidu.com
Address: 220.181.38.148
5.4
dig命令可以查询更多关于DNS的记录信息
[root@localhost ~]# dig baidu.com
; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51207
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; MBZ: 0x0005, udp: 512
;; QUESTION SECTION:
;baidu.com. IN A
;; ANSWER SECTION:
baidu.com. 5 IN A 220.181.38.148
baidu.com. 5 IN A 220.181.38.251
;; Query time: 13 msec
;; SERVER: 192.168.43.2#53(192.168.43.2)
;; WHEN: Tue Jul 19 08:47:23 EDT 2022
;; MSG SIZE rcvd: 70