前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2.系统状态检测命令

2.系统状态检测命令

原创
作者头像
用户8006012
修改2022-05-07 18:04:23
6810
修改2022-05-07 18:04:23
举报
文章被收录于专栏:DATABASEDATABASE

1.ifconfig命令

ifconfig命令用于获取网卡配置与网络状态等信息,英文全称为“interface config”,语法格式为“ifconfig [参数] [网络设备]”。

使用ifconfig命令来查看本机当前的网卡配置与网络状态等信息时,其实主要查看的就是网卡名称、inet参数后面的IP地址、ether参数后面的网卡物理地址(又称为MAC地址)

代码语言:javascript
复制
[root@linuxprobe ~]# ifconfig

2.uname命令

uname命令用于查看系统内核版本与系统架构等信息,英文全称为“unix name”,语法格式为“uname [-a]”。

在使用uname命令时,一般要固定搭配上-a参数来完整地查看当前系统的内核名称、主机名、内核发行版本、节点名、压制时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息:

代码语言:javascript
复制
[root@linuxprobe ~]# uname -a

顺带一提,如果要查看当前系统版本的详细信息,则需要查看redhat-release文件,其命令以及相应的结果如下:

代码语言:javascript
复制
[root@linuxprobe ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.0 (Ootpa)

3.uptime命令

uptime命令用于查看系统的负载信息,输入该命令后按回车键执行即可。

uptime命令真的很棒,它可以显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。平均负载值指的是系统在最近1分钟、5分钟、15分钟内的压力情况(下面加粗的信息部分),负载值越低越好:

代码语言:javascript
复制
[root@linuxprobe ~]# uptime
22:49:55 up 10 min, 1 users, load average: 0.01, 0.19, 0.18

Tips

“负载值越低越好”是对运维人员来讲的,越低表示越安全省心。但是公司购置的硬件设备如果长期处于空闲状态,则明显是种资源浪费,老板也不会开心。所以建议负载值保持在1左右,在生产环境中不要超过5就好。

4.free命令

free命令用于显示当前系统中内存的使用量信息,语法格式为“free [-h]”。

为了保证Linux系统不会因资源耗尽而突然宕机,运维人员需要时刻关注内存的使用量。在使用free命令时,可以结合使用-h参数以更人性化的方式输出当前内存的实时使用量信息。表2-9所示为在刘遄老师的电脑上执行free -h命令之后的输出信息。需要注意的是,输出信息中的中文注释是作者自行添加的内容,实际输出时没有相应的参数解释。

代码语言:javascript
复制
[root@linuxprobe ~]# free -h

表2-9                                            执行free -h命令后的输出信息

内存总量

已用量

空闲量

进程共享的内存量

磁盘缓存的内存量

缓存的内存量

可用量

total

used

free

shared

buffers

buff/cache

available

Mem:

1.9Gi

1.4Gi

99Mi

20Mi

450Mi

348Mi

Swap:

2.0Gi

80Mi

1.9Gi

如果不使用-h(易读模式)查看内存使用量情况,则默认以KB为单位。这样一来,服务器如果有几百GB的内存,则换算下来就会是一大长串的数字,真不利于阅读。

5.who命令

who命令用于查看当前登入主机的用户终端信息,输入该命令后按回车键执行即可。

这3个简单的字母可以快速显示出所有正在登录本机的用户名称以及他们正在开启的终端信息;如果有远程用户,还会显示出来访者的IP地址。表2-10所示为执行who命令后的结果。

代码语言:javascript
复制
[root@linuxprobe ~]# who

表2-10                                          执行who命令的结果

登陆的用户名

终端设备

登陆到系统的时间

root

tty2

2020-07-24 06:26 (tty2)

6.last命令

last命令用于调取主机的被访记录,输入该命令后按回车键执行即可。

Linux系统会将每次的登录信息都记录到日志文件中,如果哪天想翻阅了,直接执行这条命令就行:

代码语言:javascript
复制
[root@linuxprobe ~]# last
root     pts/1        192.168.10.1     Tue May 18 10:30 - 11:03  (00:32)
root     tty2         tty2             Fri Jul 24 06:26    gone - no logout
reboot   system boot  4.18.0-80.el8.x8 Fri Jul 24 05:59   still running
root     tty2         tty2             Tue Jul 21 05:19 - down   (00:00)
reboot   system boot  4.18.0-80.el8.x8 Tue Jul 21 05:16 - 05:19  (00:02)

wtmp begins Tue Jul 21 05:16:47 2020

7.ping命令

ping命令用于测试主机之间的网络连通性,语法格式为“ping [参数] 主机地址”。

即便大家没有学习过Linux系统,相信也肯定见过别人使用ping命令。执行ping命令时,系统会使用ICMP向远端主机发出要求回应的信息,若连接远端主机的网络没有问题,远端主机会回应该信息。由此可见,ping命令可用于判断远端主机是否在线并且网络是否正常。ping命令的常见参数以及作用如表2-11所示。

表2-11                                                 ping命令中的参数以及作用

参数

作用

-c

总共发送次数

-l

指定网卡名称

-i

每次间隔时间(秒)

-W

最长等待时间(秒)

我们使用ping命令测试一台在线的主机(其IP地址为192.168.10.10),得到的回应是这样的:

代码语言:javascript
复制
[root@linuxprobe ~]# ping -c 4 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.
64 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.155 ms
64 bytes from 192.168.10.10: icmp_seq=2 ttl=64 time=0.110 ms
64 bytes from 192.168.10.10: icmp_seq=3 ttl=64 time=0.112 ms
64 bytes from 192.168.10.10: icmp_seq=4 ttl=64 time=0.209 ms

--- 192.168.10.10 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 56ms
rtt min/avg/max/mdev = 0.110/0.146/0.209/0.042 ms

测试一台不在线的主机(其IP地址为192.168.10.20),得到的回应是这样的:

代码语言:javascript
复制
[root@linuxprobe ~]# ping -c 4 192.168.10.20
PING 192.168.10.20 (192.168.10.20) 56(84) bytes of data.
From 192.168.10.10 icmp_seq=1 Destination Host Unreachable
From 192.168.10.10 icmp_seq=2 Destination Host Unreachable
From 192.168.10.10 icmp_seq=3 Destination Host Unreachable
From 192.168.10.10 icmp_seq=4 Destination Host Unreachable

--- 192.168.10.20 ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 68ms
pipe 4

8.tracepath命令

tracepath命令用于显示数据包到达目的主机时途中经过的所有路由信息,语法格式为“tracepath [参数] 域名”。

当两台主机之间无法正常ping通时,要考虑两台主机之间是否有错误的路由信息,导致数据被某一台设备错误地丢弃。这时便可以使用tracepath命令追踪数据包到达目的主机时途中的所有路由信息,以分析是哪台设备出了问题。下面的情况就很清晰了:

代码语言:javascript
复制
[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命令

netstat命令用于显示如网络连接、路由表、接口状态等的网络相关信息,英文全称为“network status”,语法格式为“netstat [参数]”。

只要netstat命令使用得当,便可以查看到网络状态的方方面面信息。我们找出一些常用的参数让大家感受一下。netstat命令的常见参数以及作用如表2-12所示。

表2-12                                                  netstat命令中的参数以及作用

-a

显示所有连接中的Socket

-p

显示正在使用的Socket信息

-t

显示TCP协议的连接状态

-u

显示UDP协议的连接状态

-n

使用IP地址,不使用域名

-l

仅列出正在监听的服务状态

-i

显示网卡列表信息

-r

显示路由表信息

使用netstat命令显示详细的网络状况:

代码语言:javascript
复制
[root@linuxprobe ~]# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
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     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
tcp6       0      0 localhost:ipp           [::]:*                  LISTEN     
tcp6       0      0 [::]:sunrpc             [::]:*                  LISTEN     
udp        0      0 0.0.0.0:bootps          0.0.0.0:*                          
udp        0      0 0.0.0.0:sunrpc          0.0.0.0:*                          
udp        0      0 0.0.0.0:mdns            0.0.0.0:*                          
udp        0      0 0.0.0.0:37396           0.0.0.0:*                          
udp6       0      0 [::]:sunrpc             [::]:*                             
udp6       0      0 [::]:mdns               [::]:*                             
udp6       0      0 [::]:38541              [::]:*       
………………省略部分输出信息………………     

使用netstat命令显示网卡列表:

代码语言:javascript
复制
[root@linuxrpobe ~]# 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       70      0      0 0            79      0      0      0 BMRU
lo              65536      248      0      0 0           248      0      0      0 LRU
virbr0           1500        0      0      0 0             0      0      0      0 BMU

10.history命令

history命令用于显示执行过的命令历史,语法格式为“history [-c]”。

history命令应该是运维人员最喜欢的命令。执行history命令能显示出当前用户在本地计算机中执行过的最近1000条命令记录。如果觉得1000不够用,可以自定义/etc/profile文件中的HISTSIZE变量值。在使用history命令时,可以使用-c参数清空所有的命令历史记录。还可以使用“!编码数字”的方式来重复执行某一次的命令。总之,history命令有很多有趣的玩法等待您去开发。

代码语言:javascript
复制
[root@linuxprobe ~]# history
1 ifconfig
2 uname -a
3 cat /etc/redhat-release
4 uptime
5 free -h
6 who
7 last
8 ping -c 192.168.10.10
9 ping -c 192.168.10.20
10 tracepath www.linuxprobe.com
11 netstat -a
12 netstat -i
13 history
[root@linuxprobe ~]# !3
cat /etc/redhat-release
Red Hat Enterprise Linux release 8.0 (Ootpa)

历史命令会被保存到用户家目录中的.bash_history文件中。Linux系统中以点(.)开头的文件均代表隐藏文件,这些文件大多数为系统服务文件,可以用cat命令查看其文件内容:

代码语言:javascript
复制
[root@linuxprobe ~]# cat ~/.bash_history

要清空当前用户在本机上执行的Linux命令历史记录信息,可执行如下命令:

代码语言:javascript
复制
[root@linuxprobe ~]# history -c

11.sosreport命令

sosreport命令用于收集系统配置及架构信息并输出诊断文档,输入该命令后按回车键执行即可。

当Linux系统出现故障需要联系技术支持人员时,大多数时候都要先使用这个命令来简单收集系统的运行状态和服务配置信息,以便让技术支持人员能够远程解决一些小问题,抑或让他们能提前了解某些复杂问题。在下面的输出信息中,加粗的部分是收集好的资料压缩文件以及校验码,将其发送给技术支持人员即可:

代码语言:javascript
复制
[root@linuxprobe ~]# sosreport
sosreport (version 3.6)
This command will collect diagnostic and configuration information from
this Red Hat Enterprise Linux system and installed applications.

An archive containing the collected information will be generated in
/var/tmp/sos.9_i0glu8 and may be provided to a Red Hat support
representative.

Any information provided to Red Hat will be treated in accordance with
the published support policies at:
https://access.redhat.com/support/
The generated archive may contain data considered sensitive and its
content should be reviewed by the originating organization before being
passed to any third party.

No changes will be made to system configuration.
Press ENTER to continue, or CTRL-C to quit.
此处按下回车键进行确认
Please enter the case id that you are generating this report for []:此处按下回车键进行确认
Setting up archive ...
Setting up plugins ...
Running plugins. Please wait ...
………………省略部分输出信息………………
Finished running plugins 
Creating compressed archive...

Your sosreport has been generated and saved in:
/var/tmp/sosreport-linuxprobe.com-2021-05-18-jnkaspu.tar.xz

The checksum is: 9fbecbd167b7e5836db1ff8f068c4db3
Please send this file to your support representative.

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Tips
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档