云网牛站
所在位置:首页 > Linux培训 > Linux新人培训第十一章:自研工具Esh和收集系统信息

Linux新人培训第十一章:自研工具Esh和收集系统信息

2018-05-08 12:09:48作者:ywnz稿源:云网牛站

本章节主要内容为:自研工具Esh(Emergency Shell)工具的启动并登陆esh及使用esh、收集系统信息。

 

注:本Linux新人培训教程以中兴新支点服务器操作系统(CGSL)为例。

 

Esh(Emergency Shell)工具,能够在服务器系统因故障无法正常登录时,通过网口或串口连接至系统中的 esh 守护进程,获取系统运行状态的重要数据,执行关键的修复措施,实现故障的在线分析与修复。

 

11.1.启动并登陆 esh

11.1.1.启动 esh

按如下步骤启动 esh 工具:

1、主机端(即 esh 服务端)执行组合键 ALT + Ctrl + F1,将主机终端切换成文字终端;

2、主机端执行 ALT + SysRq + y,启动 esh(如果成功启动将打印显示“Wakeup Emergency Shell Kernel Thread”)。

11.1.2.登陆 esh

1、客户端(用于调试 esh 服务端所在主机的其它远程或者本地的调试机)打开 telnet 工具(这里以 SecureCRT 为例,其它 telnet 工具操作方法类似,(如下图所示));

Linux新人培训第十一章:自研工具Esh和收集系统信息

图 11-1 SecureCRT 终端 

2、打开 SecureCRT 的快速连接,选择协议为“Telnet”,并输入主机名(esh 主机端 IP)及端口号 9132.(如下图所示)

Linux新人培训第十一章:自研工具Esh和收集系统信息

图 11-2.快速连接 

3、 连接并并输入登陆密码“123cgsl”,登陆 esh,如下图所示。

Linux新人培训第十一章:自研工具Esh和收集系统信息

图 11-3 连接并登陆 esh

 

11.2.使用 esh

11.2.1.查看进程信息

1、 按默认排序规则查看进程信息,执行 ps 命令。如下图所示所示。其中各项的含义如下表所示。

表 11-1 ps 命令的输出字段定义 

Linux新人培训第十一章:自研工具Esh和收集系统信息

Linux新人培训第十一章:自研工具Esh和收集系统信息

图 11-4 ps 查看的进程信息 

Linux新人培训第十一章:自研工具Esh和收集系统信息

图 11-5 ps –sort=pid 结果 

2、 以 pid 字段为排序键值,按降序排序,查看进程信息,命令为,ps --sort=-pid,如下图所示

Linux新人培训第十一章:自研工具Esh和收集系统信息

图 11-6 ps --sort=-pid 结果 

3、以 pid 字段为排序键值,按升序排序,查看进程信息,ps --sort=+pid 如图 2-4 所示。

Linux新人培训第十一章:自研工具Esh和收集系统信息

图 11-7 ps --sort=+pid 结果

11.2.2.查看内存使用信息

free 命令用于显示系统的内存使用信息,如下图所示。

Linux新人培训第十一章:自研工具Esh和收集系统信息

图 11-8 内存使用信息查询结果 

信息字段的定义如下表所示。

表 12-2.free 命令的输出字段定义 

Linux新人培训第十一章:自研工具Esh和收集系统信息

Linux新人培训第十一章:自研工具Esh和收集系统信息

free 命令的输出包括两行,第一行是内存的信息,包括完整的 6 个字段数据。第二行则是交换空间的信息,只包括 total、used 和 free 字段。

11.2.3.查看虚拟内存相关信息

vmstat 命令用于报告虚拟内存相关的统计信息和 CPU 负荷:页面调度,交换,任务交换,CPU利用率。如下图所示。

Linux新人培训第十一章:自研工具Esh和收集系统信息

图 11-9 虚拟内存信息查询结果 

信息字段的定义如表 2-3 所示。

表 11-3 vmstat 命令的输出字段定义 

Linux新人培训第十一章:自研工具Esh和收集系统信息

Linux新人培训第十一章:自研工具Esh和收集系统信息

11.2.4.查看文本文件内容

cat 命令用于输出系统上的任意一个文本文件的内容。cat 命令只支持一个命令行参数,即以绝对路径形式给出的文件名。若文件存在且可访问,则读取文件内容,传输给 esh 客户端程序。实例如图 2-7 所示。

Linux新人培训第十一章:自研工具Esh和收集系统信息

图 11-10 查看文本文件

11.2.5.停止指定进程

stop 命令用于停止指定进程的运行。stop 命令只支持一个命令行参数,即以数字形式表示的进程 ID。stop 命令以向指定进程发送 SIGSTOP 信号的方式完成命令功能。实例如图 2-8 所示。

Linux新人培训第十一章:自研工具Esh和收集系统信息

图 11-11 停止一个进程

11.2.6.关闭当前 esh 连接

exit 命令的功能是关闭当前 esh 连接。如图 2-9 所示。从图中不难发现,执行 exit 命令之后SecureCRT 从连接状态转变成了未连接状态,说明 esh 连接断开了。

Linux新人培训第十一章:自研工具Esh和收集系统信息

图 11-12 关闭 esh 连接

 

11.3.收集系统信息

在我们学习如何配置系统之前,应该学习如何收集基本的系统信息。譬如,我们应该知道如何找出关于空闲内存的数量、可用硬盘驱动器空间的数量,硬盘分区方案,以及正在运行进程的信息。

本章将讨论如何使用几个简单程序来从 CGSL 系统中检索这类信息。

系统进程

ps ax 命令显示一个当前系统进程的列表,该列表中包括其他用户拥有的进程。要显示进程以及它们的所有者,使用 ps aux 命令。该列表是一个静态列表;换一句话说,它是在你启用这项命令时正在运行的进程的快照。如果你需要一个时刻更新的运行进程列表,使用下面描述的 top 命令。

ps 的输出会很长。要防止它快速从屏幕中滑过,你可以把它管道输出给 less 命令:

ps aux | less

你可以使用 ps 命令和 grep 命令的组合来查看某进程是否在运行。譬如,要判定 Emacs 是否在运行,使用下面这个命令:

ps ax | grep emacs

top 命令显示了当前正运行的进程以及关于它们的重要信息,包括它们的内存和 CPU 用量。该列表既是真实时间的也是互动的。以下提供了一个 top 的输出示例:

Linux新人培训第十一章:自研工具Esh和收集系统信息

要退出 top,按[q]键。

可以和 top 一起使用的互动命令包括:

互动的 top 命令

Linux新人培训第十一章:自研工具Esh和收集系统信息

 提示:类似于 Mozilla 和 Nautilus 的应用程序具备线程感知(thread-aware),多个线程会被创建来处理多个用户或多个请求,而且每个线程都有自己的 PID。按照默认设置,ps 和 top 只显示主(初始)线程。要查看所有线程,使用 ps -m 命令或在 top 中键入[Shift]-[H]组合键。

如果和 top 相比,更喜欢使用图形化界面,我们可以使用 GNOME 系统监视器。要从桌面上启动它,选择面板上的【系统】->【管理】->【系统监视器】或在 X 窗口系统的 Shell 提示下键入gnome-system-monitor。然后选择【进程】标签,如图 所示。

Linux新人培训第十一章:自研工具Esh和收集系统信息

GNOME 系统监视器允许在正运行的进程列表中通过【查看】里的各标签搜索进程,包括查看所有进程、你拥有的进程、或活跃的进程。要停止某进程,选择该进程,然后点击【结束进程】。这有助于结束对用户输入已不再做出反应的进程。若要按指定列的信息来排序,点击该列的名称。信息被排序的那一列会用深灰色显示。若需要要改变 GNOME 系统监控器的默认设置,选择【编辑】->【首选项】,点击【进程】和【资源】标签,可以允许配置更新间隔,每个进程默认显示的信息,以及系统监视器图表的颜色。

内存用量

free 命令显示系统的物理内存和交换区的总量,以及已使用的、空闲的、共享的、在内核缓冲内的、和被缓存的内存数量。

Linux新人培训第十一章:自研工具Esh和收集系统信息

free -m 命令显示的信息和前面相同,但是它以 MB 为单位,便于阅读。

Linux新人培训第十一章:自研工具Esh和收集系统信息

如果和 free 相比,你更喜欢使用图形化界面,你可以使用 GNOME 系统监视器。要从桌面上启动它,选择面板上的【系统】->【管理】->【系统监视器】或在 X 窗口系统 Shell 提示下键入gnome-system-monitor。然后选择【资源】标签,如图所示。

Linux新人培训第十一章:自研工具Esh和收集系统信息

文件系统

df 命令报告系统的磁盘空间用量。如果你在 Shell 提示下键入了 df 命令,它的输出与下面相似:

Filesystem 1k-blocks Used Available Use% Mounted on

/dev/hda2 10325716 2902060 6899140 30% /

/dev/hda1 15554 8656 6095 59% /boot

/dev/hda3 20722644 2664256 17005732 14% /home

none 256796 0 256796 0% /dev/shm

按照默认设置,该工具把分区大小显示为 1KB 的块,已用的和可用的磁盘空间以 KB 为单位显示。要查看以 MB 和 GB 为单位的信息,使用 df -h 命令。-h 选项代表人可读格式。它的输出类似于:

Filesystem Size Used Avail Use% Mounted on

/dev/hda2 9.8G 2.8G 6.5G 30% /

/dev/hda1 15M 8.5M 5.9M 59% /boot

/dev/hda3 20G 2.6G 16G 14% /home

none 251M 0 250M 0% /dev/shm

在分区列表中,有一项是/dev/shm。该项目代表系统的虚拟内存文件系统。

du 命令显示被目录中的文件使用的估计空间数量。如果在 Shell 提示下键入了 du 命令,每个子目录的用量都会在列表中显示,当前目录和子目录的总和也会在列表的最后一行中被显示。如果我们不想查看每个子目录的用量,使用 du -hs 命令来使用人可读的格式只列出目录用量总和。使用 du -help 命令来查看更多选项。

要查看图形化的系统分区和磁盘空间用量,使用【系统监视器】->【file system】标签,如图所示。

Linux新人培训第十一章:自研工具Esh和收集系统信息

硬件

如果我们在配置硬件时遇到问题,或者只是想了解一下系统中有哪些硬件,可以使用硬件浏览 器程序来显示能被探测到的硬件。要在桌面环境下启动该程序,在 Shell 提示下键入 hwbrowser。如图所示,它显示了你的光盘设备、软盘、硬盘驱动器和它们的分区、网络设备、指示设备、系统设备、以及视频卡。点击左侧菜单上的类别名称,有关信息就会被显示。

Linux新人培训第十一章:自研工具Esh和收集系统信息

还可以使用 lspci 命令来列举所有的 PCI 设备。使用 lspci -v 命令来获得详细的信息,或使用 lspci -vv 命令来获得更详细的输出。譬如,lspci 命令可以被用来判定系统视频卡的制造厂商、型号、以及内存大小:

01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G400 AGP (rev 04) \

(prog-if 00 [VGA])

Subsystem: Matrox Graphics, Inc. Millennium G400 Dual Head Max

Flags: medium devsel, IRQ 16

Memory at f4000000 (32-bit, prefetchable) [size=32M]

Memory at fcffc000 (32-bit, non-prefetchable) [size=16K]

Memory at fc000000 (32-bit, non-prefetchable) [size=8M]

Expansion ROM at 80000000 [disabled] [size=64K]

Capabilities: [dc] Power Management version 2

Capabilities: [f0] AGP version 2.0

已安装的文档

ps –help——显示了一个能够与 ps 一起使用的选项列表。

/proc/目录——/proc/目录的内容用来收集更详细的系统信息。其中常用文件如下:

/proc/cmdline——这个文件给出了内核启动的命令行。

/proc/cpuinfo——这个文件提供了有关系统 CPU 的多种信息。这些信息是从内核里对 CPU 的测试代码中得到的。

/proc/devices——这个文件列出字符和块设备的主设备号,以及分配到这些设备号的设备名称。

/proc/dma——这个文件列出由驱动程序保留的 DMA 通道和保留它们的驱动程序名称。

/proc/filesystems——这个文件列出可供使用的文件系统类型,一种类型一行。虽然它们通常是编入内核的文件系统类型,但该文件还可以包含可加载的内核模块加入的其它文件系统类型。

/proc/kcore——这个文件是系统的物理内存以 core 文件格式保存的文件。

/proc/kmsg——这个文件用于检索用 printk 生成的内核消息。任何时刻只能有一个具有超级用户权限的进程可以读取这个文件。也可以用系统调用 syslog 检索这些消息。通常使用工具 dmesg 或守护进程 klogd 检索这些消息。

/proc/locks——这个文件包含在打开的文件上的加锁信息。

 

相关主题

想服务器不宕机,你了解Linux“体检”指标吗?

精选文章
热门文章