Linux服务器常用的检查命令

针对服务器,已经有许多监控的软件可以使用,比如Munin, ZabbixNagios。但当服务器出现一些异常情况时,还是需要使用一些基本的Linux命令来进行定位和检查,以下就是一些通常会用到的命令。

$ w
$ last

这两个命令可以检查一下当前登录的用户以及最后登录的用户信息。

$ history

查看一下之前做的操作通常是定位问题的一个好开端。不过在许多系统的默认环境变量设置中,history命令显示的内容是没有时间信息的。所以在一开始做好系统的时候,记得将HISTTIMEFORMAT设置为合适的格式是个好习惯。

$ pstree -a
$ top -b -n 1
$ ps aux

这些命令可以作为查看系统当前运行进程情况的工具,配合grep的话可以做进一步的分析。

$ netstat -ntlp
$ netstat -nulp
$ netstat -nxlp
$ netstat -an | grep [port]
$ ss -s

查看网络端口的监听状况,有时候连接没有正常释放或断开,造成端口已经难以分配也是比较常遇到的问题。

$ free -m
$ uptime
$ lspci
$ dmidecode
$ ethtool

查看硬件的信息和内存使用概况,检查是否工作在正常的状态下。

$ iostat -kx 2
$ vmstat 2 10
$ mpstat 2 10
$ dstat
$ df -h

IO的性能情况是在应用软件层面最常遇到的问题,这几个工具输出的信息能帮助判断IO性能是否存在瓶颈,同时也可以找出造成相应问题的进程。

$ dmesg
$ less /var/log/messages
$ less /var/log/secure
$ less /var/log/auth

查看一些系统日志是帮助定位一些较隐蔽,或者间断发生问题的手段。用less和grep这样的工具能对查看和筛选日志中的内容提供极大帮助。

有时候凭直觉也可以快速知道问题产生的原因,但这些基本命令能提供更加精确量化的数据,以及为直觉的推断提供证据,或者排除直觉判断上的错误。