系统管理员必备的实用工具集结
与凡是在开源领域干过一阵子的人一样,我的工具箱里面也有大量的常用程序和实用工具,它们有助于完成工作。所有主要的Linux发行版都有我要介绍的每一个工具,这些工具不是在安装过程中默认安装,就是可以通过安装后的核心程序库来获得。
这些工具将为我们提供相应的信息和度量指标,不仅可以查看我们的系统当前出现的情况,还可以在性能或稳定性成为问题时,帮助进行必要的分析。我们会介绍几个“首要”的工具用于查找磁盘、处理器、网络及/或其他系统瓶颈,也会介绍仅仅回答某些基本问题的一些工具。这篇短文绝非称得上内容齐全。我的本意是在这篇文章之后写几篇另外的文章,介绍其他工具,最终更深入地探究比较复杂的应用程序。
首屈一指的工具:’top’
我原本希望自己在甄选排名第一的工具软件上更有创意点,不过,除了明显的功能外,’top’工具之所以被称为’top’的确是名至实归。这个简单的命令为你提供了实时视图,可以随时了解系统上如今和最近的过去发生的一切情况。默认情况下,我们会看到使用处理器资源最多的进程每5秒钟就更新一次。
如你所见,我们很快获得了大量的实用信息,关于该系统上眼下发生的情况。我们能发现,该系统已运行了近40分钟,负载目前不到1.0,系统有4GB内存和同样是4GB的交换空间,消耗处理器资源最多的两大进程是XWindows以及带”Plasma桌面”合成特效的KDE。我会在此稍作停顿,向你介绍一种更好的top版本:’htop’。该工具为我们提供了更多一点的信息,而且布局更整洁一点:
现在我们在这里清楚地看到,该系统还有2个处理器,清楚地呈现了每个处理器/核心有多少资源连同内存和交换空间被使用。此外(虽然在该屏幕截图中没有显示出来),我们可以访问许多的功能键快捷键,这些快捷键可用于重新排列进程的显示,停止进程或过滤进程。虽然这些信息也可以通过’top’来获得,但是用’htop’显得更整洁一点、对用户更友好一点。
谁跑到了那里:’w’
我认为这个实用的小工具被大家忽视了,甚至被经验丰富的系统管理员忽视了。简而言之,该命令会显示目前机器上的用户及其进程方面的信息。你可以查看单个用户,也可以同时查看所有用户:
我在为谁等待:’iostat’
这个命令很适合获得简要视图,了解系统的输入输出子系统(磁盘、处理器和网络文件共享)方面的情况。它会报告系统是处于闲置状态还是等待某个操作,然后列出你所有分区的读取/写入行为(Ubuntu用户会注意到,一些版本要求从默认程序库安装’sysstat’程序包,才能获得该应用程序)。这将有助于表明系统上需要进一步探究的其他方面:
在这里,相应的这个系统实际上处于闲置状态,只有一个分区,基本上没有进行太多的操作(我的Ubuntu虚拟机用于测试)。这向我清楚地表明了,我没有任何输入输出等待;任何性能问题可能与该子系统没有关系。
谁在侦听:’nmap’
虽然整篇文章可以用来专门介绍’nmap‘(还有许多工具也是如此),不过这款简易的工具可以迅速获取实用信息。该工具会扫描你的本地系统(或者如果获得用户的相应许可权限,还可以扫描远程系统),告诉你关于该系统的各种各样的实用的网络信息。就本地系统而言,在故障排查性能或应用程序功能的过程中,它能告诉你系统是不是确实在侦听你期望它侦听的端口。对你的本地系统进行全面的TCP扫描后,输出结果应该类似这样:
如你所见,在这个基本系统上,我们在运行MySQL(端口3306)、Apache或另一个应用程序通过HTTP侦听(端口80)以及通过互联网打印侦听(端口631上的IPP)。这些信息不仅可以用来证实某应用程序已打开了相应的端口;如果我在加固该系统以便安全访问互联网,我还会显然采取步骤,关闭端口631,因为存在大量的安全漏洞,可能会导致该系统暴露在攻击者面前。
结束语
一些基本的工具或比较复杂的工具可用于获得系统的基本信息,上面这些只是其中的一小部分而已。每个工具都有比较复杂的使用场合,可以在命令行或者它们随带的参考手册页上找到。将来,我们会为自己的工具箱添加更多的工具,并且学习如何运用这些工具来发现我们的系统方面的更深入信息。欢迎留言,告诉我们你使用什么工具,如何使用工具。