🐧 系统状态检查命令
关键词:网络、版本、负载、访问、历史、诊断
作为一名合格的运维人员,想要更快、更好地了解 Linux 服务器,必须具备快速查看 Linux系统运行状态的能力,本节概括有网卡网络、系统内核、系统负载、内存使用情况、当前启用终端数量、历史登录记录、命令执行记录以及救援诊断等相关命令的使用方法。
🧊1.ifconfig 命令
作用:用于获取网卡配置与网络状态等信息,英文全称"interface config"
语法:ifconfig [网络设备] [参数]
[root@linuxprobe ~]# ifconfig
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.22.46.174 netmask 255.255.254.0 broadcast 172.22.47.255
inet6 fe80::1c64:e79d:a17e:9b60 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:82:99:46 txqueuelen 1000 (Ethernet)
RX packets 103468 bytes 91264650 (87.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 51780 bytes 4761170 (4.5 MiB)
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 4059 bytes 3408923 (3.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4059 bytes 3408923 (3.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:a1:10:3f txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
使用 ifconfig
命令来查看本机当前的网卡配置与网络状态等信息时,其实主要查看的就是网卡名称、inet
参数后面的 IP 地址、ether
参数后面的网卡物理地址(又称为 MAC
地址),以及 RX、TX 的接收数据包与发送数据包的个数及累计流量(即下面加粗的信息内容):
🧊2.uname命令
作用:用于查看系统内核与系统版本等信息,英文全称为"unix name"
语法:uname [-a]
常用参数:
-a | 显示系统所有相关信息 |
---|---|
-m | 显示计算机硬件架构 |
-n | 显示主机名称 |
-s | 显示内核名称 |
-r | 显示内核发行版本号 |
-v | 显示内核版本 |
-p | 显示主机处理器类型 |
-o | 显示操作系统名称 |
-i | 显示硬件平台 |
在使用 uname
命令时,一般会固定搭配上-a 参数来完整地查看当前系统的内核名称、主机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息。
[root@linuxprobe ~]# uname -a
Linux linuxprobe.com 4.18.0-80.el8.x86_64 #1 SMP Wed Mar 13 12:02:46 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
如果要查看当前系统版本的详细信息,则需要查看 redhat-release 文件,其命令以及相应的结果如下:
[root@linuxprobe ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.0 (Ootpa)
🧊3.uptime命令
作用:用于查看系统的负载信息
语法:输入uptime回车即可
它可以显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。平均负载值指的是系统在最近 1 分钟、5 分钟、15 分钟内的压力情况(下面加粗的信息部分);负载值越低越好,尽量不要长期超过 1,在生产环境中不要超过 5。
[root@linuxprobe ~]# uptime
23:05:28 up 3:22, 1 user, load average: 0.02, 0.04, 0.08
🧊4.free命令
作用:用于显示当前系统中内存的使用量信息
语法:free [-h]
为了保证 Linux
系统不会因资源耗尽而突然宕机,运维人员需要时刻关注内存的使用量。在使用 free
命令时,可以结合使用-h
参数以更人性化的方式输出当前内存的实时使用量信息。
[root@linuxprobe ~]# free -h
total used free shared buff/cache available
Mem: 1.9Gi 1.2Gi 262Mi 5.0Mi 510Mi 612Mi
Swap: 2.0Gi 690Mi 1.3Gi
如果不使用-h
(易读模式)查看内存使用量情况,则默认以 KB
为单位。这样一来,服务器如果有几百 GB 的内存,则换算下来就会是一大长串的数字,真不利于阅读。
🧊5.who命令
作用:用于查看当前登入主机的用户终端信息
语法:输入who命令回车即可
可以快速显示出所有正在登录本机的用户的名称以及他们正在开启的终端信息;如果有远程用户,还会显示出来访者地IP地址。
[root@linuxprobe ~]# who
root tty2 2023-02-15 17:58 (tty2)
root pts/1 2023-02-15 18:17 (192.168.249.254)
🧊6.last命令
作用:用于调取主机的被访问记录。
语法:输入last命令回车即可
Linux 系统会将每次的登录信息都记录到日志文件中,如果哪天想翻阅了,直接执行这条命令就行:
[root@linuxprobe ~]# last
root tty2 tty2 Tue Dec 28 23:37 gone - no logout
reboot system boot 4.18.0-80.el8.x8 Tue Dec 28 23:32 still running
root tty2 tty2 Tue Dec 28 08:29 - down (07:02)
reboot system boot 4.18.0-80.el8.x8 Tue Dec 28 08:28 - 15:32 (07:03)
root tty2 tty2 Mon Dec 27 08:11 - crash (1+00:17)
reboot system boot 4.18.0-80.el8.x8 Mon Dec 27 08:11 - 15:32 (1+07:21)
root tty2 tty2 Mon Dec 27 03:44 - down (04:15)
reboot system boot 4.18.0-80.el8.x8 Mon Dec 27 03:44 - 08:00 (04:16)
root pts/1 172.20.23.28 Sun Dec 26 23:27 - 23:27 (00:00)
root pts/0 172.20.23.28 Sun Dec 26 23:24 - 03:12 (03:47)
root pts/1 172.20.23.28 Sun Dec 26 22:53 - 23:08 (00:14)
root pts/2 172.20.23.28 Sun Dec 26 19:19 - 22:06 (02:46)
root pts/1 192.168.43.253 Sun Dec 26 18:54 - 21:09 (02:14)
root tty2 tty2 Sun Dec 26 18:50 - down (08:21)
reboot system boot 4.18.0-80.el8.x8 Sun Dec 26 18:50 - 03:12 (08:21)
root tty2 tty2 Sun Dec 26 16:30 - down (02:19)
reboot system boot 4.18.0-80.el8.x8 Sun Dec 26 16:26 - 18:50 (02:23)
root tty2 tty2 Thu Nov 25 02:47 - crash (31+13:38)
reboot system boot 4.18.0-80.el8.x8 Thu Nov 25 02:46 - 18:50 (31+16:04)
root tty2 tty2 Wed Nov 10 21:23 - crash (14+05:23)
reboot system boot 4.18.0-80.el8.x8 Wed Nov 10 21:20 - 18:50 (45+21:29)
wtmp begins Wed Nov 10 21:20:42 2021
🧊7.ping命令
作用:用于测试主机之间的网络连通性。
语法:ping [参数] 主机地址
执行ping
命令时,系统会使用ICMP
向远端主机发出要求回应的信息,若链接远端主机的网络没有问题,远端主机会回应该信息。由此可见,ping
命令可用于判断远端主机是否在线并且网络是否正常。
ping
命令中的参数以及作用
参数 | 用户 |
---|---|
-c | 总共发送次数 |
-l | 指定网卡名称 |
-I | 每次间隔时间(秒) |
-W | 最长等待时间(秒) |
例如: ping命令测试一台在线主机(其IP地址为192.168.1.103)
[root@linuxprobe ~]# ping -c 4 192.168.1.103
PING 192.168.1.103 (192.168.1.103) 56(84) bytes of data.
64 bytes from 192.168.1.103: icmp_seq=1 ttl=64 time=0.327 ms
64 bytes from 192.168.1.103: icmp_seq=2 ttl=64 time=0.256 ms
64 bytes from 192.168.1.103: icmp_seq=3 ttl=64 time=0.259 ms
64 bytes from 192.168.1.103: icmp_seq=4 ttl=64 time=0.640 ms
--- 192.168.1.103 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 78ms
rtt min/avg/max/mdev = 0.256/0.370/0.640/0.159 ms
例如: ping命令测试一台不在的主机(其IP地址为192.168.1.20)
[root@linuxprobe ~]# ping -c 4 192.168.1.20
PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.
From 192.168.1.106 icmp_seq=1 Destination Host Unreachable
From 192.168.1.106 icmp_seq=2 Destination Host Unreachable
From 192.168.1.106 icmp_seq=3 Destination Host Unreachable
From 192.168.1.106 icmp_seq=4 Destination Host Unreachable
--- 192.168.1.20 ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 89ms
pipe 4
🧊8.tracepath命令
作用:用于显示数据包到达目的地主机时途中经过的所有路由信息。
语法:tracepath [参数] 域名
当两台主机之间无法正常ping
通时,要考虑两台主机之间是否有错误的路由信息,导致数据被某一台设备错误地丢弃。这时可以使用tracepath
命令追踪数据包到达目的主机时途中的所有路由信息,以分析时哪台设备出来问题。下面的情况就很清晰了:
[root@linuxprobe~]# tracepath www.linuxprobe.com
1?: [LOCALHOST] pmtu 1500
1: no reply
2: 11.223.0.189 5.954ms asymm 1
3: 11.223.0.14 6.256ms asymm 2
4: 11.220.159.62 3.313ms asymm 3
5: 116.251.107.13 1.841ms
6: 140.205.50.237 2.416ms asymm 5
7: 101.95.211.117 2.772ms
8: 101.95.208.45 40.839ms
9: 101.95.218.217 13.898ms asymm 8
10: 202.97.81.162 8.113ms asymm 9
11: 221.229.193.238 15.693ms asymm 10
12: no reply
13: no reply
14: no reply
15: no reply
16: no reply
17: no reply
18: no reply
………………省略部分输出信息………………………
🧊9.netstat命令
作用:用于显示如网络连接、路由表、接口状态等的网络相关信息,英文全称为"network status"。
语法:netstat [参数]
netstat
命令中的参数以及作用
参数 | 作用 |
---|---|
-a | 显示所有连接中的Socket |
-p | 显示正在使用的Socket |
-t | 显示TCP协议的连接状态 |
-u | 显示UDP协议的连接状态 |
-n | 使用IP地址,不使用域名 |
-l | 仅列出正在监听的服务状态 |
-i | 现在网卡列表信息 |
-r | 显示路由表信息 |
例如: 使用netstat -a
命令显示详细的网络状况:
[root@linuxprobe ~]# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 linuxprobe.com:domain 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN
tcp 0 0 172.22.46.174:ssh 172.22.46.199:61672 ESTABLISHED
tcp6 0 0 [::]:ssh [::]:* LISTEN
tcp6 0 0 localhost:ipp [::]:* LISTEN
tcp6 0 0 [::]:mysqlx [::]:* LISTEN
tcp6 0 0 localhost:mxi [::]:* LISTEN
tcp6 0 0 [::]:8009 [::]:* LISTEN
tcp6 0 0 [::]:mysql [::]:* LISTEN
tcp6 0 0 [::]:sunrpc [::]:* LISTEN
tcp6 0 0 [::]:webcache [::]:* LISTEN
………………省略部分输出信息………………
例如: 使用netstat -i
命令显示网卡列表:
[root@linuxprobe ~]# netstat -i
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
ens160 1500 105938 0 0 0 52192 0 0 0 BMRU
lo 65536 4189 0 0 0 4189 0 0 0 LRU
virbr0 1500 0 0 0 0 0 0 0 0 BMU
🧊10.history命令
作用:用于显示历史执行过的命令
语法:history [参数] [目录]
执行history
命令能显示出当前用户在本地计算机中执行过的最近1000条命令记录。 如果觉得1000不够用,可以定义/etc/profile
文件中的HISTSIZE变量值。
使用“!编码数字” 的方式来重复执行某一次的命令。
例如: 重复两次执行history命令
[root@linuxprobe ~]# history
1 netstat -i
2 netstat -l
3 ls
4 history
5 ls
6 hitory
7 history
[root@linuxprobe ~]# !4
history
1 netstat -i
2 netstat -l
3 ls
4 history
5 ls
6 hitory
7 history
history命令的参数以及作用
参数 | 作用 |
---|---|
-a | 将当前shell会话的历史命令追加到命令历史文件中,命令历史文件是保存历史命令的配置文件 |
-c | 清空当前历史命令列表 |
-n | 从命令历史文件中读取本次Shell会话开始时没有读取的历史命令 |
-r | 读取命令历史文件到当前的Shell历史命令内存缓冲区 |
-s | 将指定的命令作为单独的条目加入命令历史内存缓冲区。在执行添加之前先删除命令历史内存缓冲区中最后一条命令 |
-w | 把当前的shell历史命令内存缓冲区的内容写入命令历史文件 |
-d | 删除历史命令列表中指定序号的命令 |
历史命令会被保存到用户家目录中的.bash_history
文件中。Linux
系统中以点(.)开头的文件均代表隐藏文件,这些文件大多数为系统服务文件,可以用 cat
命令查看其文件内容:
[root@linuxprobe~]# cat ~/.bash_history
显示最近的10条命令:
[root@linuxcool ~]# history 10
将本次登录的命令写入历史文件中:
[root@linuxcool ~]# history -w
将命令历史文件中的内容读入到目前shell的history记忆中 :
[root@linuxcool ~]# history -r
将当前Shell会话的历史命令追加到命令历史文件中:
[root@linuxcool ~]# history -a
清空当前历史命令列表:
[root@linuxcool ~]# history -c
🧊11.sosreport命令
作用:用于收集系统配置及架构信息并输出诊断文档
语法:输入sosreport命令回车即可
当 Linux
系统出现故障需要联系技术支持人员时,大多数时候都要先使用这个命令来简单收集系统的运行状态和服务配置信息,以便让技术支持人员能够远程解决一些小问题,亦或让他们能提前了解某些复杂问题。
使用sosreport
命令后,两次回车确认:
在下面的输出信息中,会生成收集好的资料压缩文件以及校验码,将其发送给技术支持人员即可:
sosreport
命令有点像是远程问诊。假如我们今天有点咳嗽发烧不舒服,可以先从网上搜索相关症状的病因,如果仅仅是感冒的话那就多喝水,这就免去了到医院挂号看病的车马劳顿;而如果怀疑出了大毛病,再请专业人员进行处理也不迟。
- CentOS7+VMware 14的安装教程
- 了解系统内核和 Shell 终端的关系与作用
- 新手必须掌握的Linux命令之《常用系统工作命令》
- 新手必须掌握的Linux命令之《系统状态检查命令》
- 新手必须掌握的Linux命令之《查找定位文件命令》
- 新手必须掌握的Linux命令之《文本文件编辑命令》
- 新手必须掌握的Linux命令之《文件目录管理命令》