您的位置:首页 > 运维架构 > Linux

RedHat Linux 9收集系统信息

2006-11-02 20:34 281 查看
 
在你学习如何配置系统之前,你应该学习如何收集基本的系统信息。譬如,你应该知道如何找出关于空闲内存的数量、可用硬盘驱动器空间的数量,硬盘分区方案,以及正在运行进程的信息。本章将讨论如何使用几个简单命令和程序来从你的 Red Hat Linux 系统中检索这类信息。

26.1. 系统进程

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

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

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

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

00:53:01 up 6 days, 14:05, 3 users, load average: 0.92, 0.87, 0.71
71 processes: 68 sleeping, 2 running, 1 zombie, 0 stopped
CPU states: 18.0% user 0.1% system 16.0% nice 0.0% iowait 80.1% idle
Mem: 1030244k av, 985656k used, 44588k free, 0k shrd, 138692k buff
424252k actv, 23220k in_d, 252356k in_c
Swap: 2040212k av, 330132k used, 1710080k free 521796k cached
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
15775 joe 5 0 11028 10M 3192 S 1.5 4.2 0:46 emacs
14429 root 15 0 63620 62M 3284 R 0.5 24.7 63:33 X
17372 joe 11 0 1056 1056 840 R 0.5 0.4 0:00 top
17356 joe 2 0 4104 4104 3244 S 0.3 1.5 0:00 gnome-terminal
1 root 0 0 544 544 476 S 0.0 0.2 0:06 init
2 root 0 0 0 0 0 SW 0.0 0.0 0:00 kflushd
3 root 1 0 0 0 0 SW 0.0 0.0 0:24 kupdate
4 root 0 0 0 0 0 SW 0.0 0.0 0:00 kpiod
5 root 0 0 0 0 0 SW 0.0 0.0 0:29 kswapd
347 root 0 0 556 556 460 S 0.0 0.2 0:00 syslogd
357 root 0 0 712 712 360 S 0.0 0.2 0:00 klogd
372 bin 0 0 692 692 584 S 0.0 0.2 0:00 portmap
388 root 0 0 0 0 0 SW 0.0 0.0 0:00 lockd
389 root 0 0 0 0 0 SW 0.0 0.0 0:00 rpciod
414 root 0 0 436 432 372 S 0.0 0.1 0:00 apmd
476 root 0 0 592 592 496 S 0.0 0.2 0:00 automount

要退出 top ,按 [q] 键。

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

[Space] 立即刷新显示
[h] 显示帮助屏幕
[k] 杀死某进程。你会被提示输入进程 ID 以及要发送给它的信号。
改变显示的进程数量。你会被提示输入数量。
按用户排序。
[M] 按内存用量排序。
[P] 按 CPU 用量排序。
表 26-1. 互动的 top 命令

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

如果和 top 相比,你更喜欢使用图形化界面,你可以使用 GNOME 系统监视器 。要从桌面上启动它,选择面板上的 「主菜单」 => 「系统工具」 => 「系统监视器」 或在 X 窗口系统的 shell 提示下键入 gnome-system-monitor 。然后选择 「进程列表」 标签。

GNOME 系统监视器 允许你在正运行的进程列表中搜索进程,还可以查看所有进程、你拥有的进程、或活跃的进程。

要了解更多关于某进程的情况,选择该进程,然后点击 「更多信息」 按钮。关于该进程的细节就会显示在窗口的底部。

要停止某进程,选择该进程,然后点击 「结束进程」 。这有助于结束对用户输入已不再做出反应的进程。

要按指定列的信息来排序,点击该列的名称。信息被排序的那一列会用深灰色显示。

按照默认设置, GNOME 系统监控器 不显示线程。要改变这个首选项,选择 「编辑」 => 「首选项」 ,点击 「进程列表」 标签,然后选择 「显示线程」 。首选项还允许你配置更新间隔;每个进程默认显示的信息;以及系统监视器图表的颜色。



图 26-1. [b]GNOME 系统监视器 [/b]

26.2. 内存用量

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

total used free shared buffers cached
Mem: 256812 240668 16144 105176 50520 81848
-/+ buffers/cache: 108300 148512
Swap: 265032 780 264252
free -m 命令显示的信息和前面相同,但是它以 MB 为单位,便于阅读。

total used free shared buffers cached
Mem: 250 235 15 102 49 79
-/+ buffers/cache: 105 145
Swap: 258 0 258
如果和 free 相比,你更喜欢使用图形化界面,你可以使用 GNOME 系统监视器 。要从桌面上启动它,选择面板上的 「主菜单」 => 「系统工具」 => 「系统监视器」 或在 X 窗口系统的 shell 提示下键入 gnome-system-monitor 。然后选择 「进程列表」 标签。



图 26-2. [b]GNOME 系统监视器 [/b]

26.3. 文件系统

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 命令来查看更多选项。

要查看图形化的系统分区和磁盘空间用量,使用 「系统监视器」 标签,如图 26-2的底部所示。

窍门:关于实现磁盘配额的信息,请参阅第6章。

26.3.1. 监控文件系统

Red Hat Linux 提供了一个叫做 diskcheck 的工具程序,它监视系统上的空闲磁盘空间数量。根据配置文件的规定,当一个或多个磁盘驱动器上的用量达到指定程度时,它会向系统管理员发送电子邮件。要使用该工具,你必须安装了 diskcheck RPM 软件包。

该工具作为每小时 cron任务运行。

以下变量可以在 /etc/diskcheck.conf 文件中被定义:

defaultCutoff — 当磁盘驱动器的用量达到这个百分比,它就会被报告。譬如,如果 defaultCutoff = 90 被指定,磁盘驱动器的用量达到 90%, 电子邮件就会被寄出。

cutoff[ /dev/partition ] — 超越分区的 defaultCutoff 。例如,如果 cutoff['/dev/hda3'] = 50 被指定,当 /dev/hda3 分区的用量达到 50%, diskcheck 就会警告系统管理员。

cutoff[ /mountpoint ] — 超越挂载点的 defaultCutoff 。譬如,如果 cutoff['/home'] = 50 被指定,当 /home 挂载点的用量达到 50%, diskcheck 就会警告系统管理员。

exclude — 指定 diskcheck 要忽略的一个或多个分区。譬如,如果 exclude = "/dev/sda2 /dev/sda4" 被指定,在 /dev/sda2 或 /dev/sda4 的用量达到指定的切断百分比的情况下, diskcheck 将不会警告系统管理员。

ignore — 指定要忽略的一个或多个文件系统,格式为 -x filesystem-type 。譬如,如果 ignore = "-x nfs -x iso9660" 被指定了,在 nfs 或 iso9660 文件系统的用量达到限制时,系统管理员将不会被警告。

mailTo — 当分区或挂载点达到限制时,要向系统管理员发出警告的电子邮件地址。譬如,如果 mailTo = "webmaster@example.com" 被指定了,警告就会被邮寄给 webmaster@example.com

mailFrom — 指定电子邮件寄发者的身份。这有助于系统管理员过滤来自 diskcheck 的邮件。譬如,如果 mailFrom = "Disk Usage Monitor" 被指定了,发送给系统管理员的电子邮件的寄发者就是“磁盘用量监控器”。

mailProg — 指定发送电子邮件警告要使用的邮寄程序。譬如,如果 mailProg = "/usr/sbin/sendmail" 被指定了,Sendmail 就会被用作邮寄程序。

如果你改变了配置文件,你不必重新启动服务,因为每次 cron 任务运行的时候都会重读该配置文件。你必须运行 crond 服务才能执行 cron 任务。要判定该守护进程是否在运行,使用 /sbin/service crond status 命令。推荐你在引导时启动该服务。关于在引导时自动启动 cron 服务的详细信息,请参阅第14章 。

 

26.4. 硬件

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



图 26-3. [b]硬件浏览器 [/b]

你还可以使用 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
如果你不知道系统网卡的制造商或型号, lspci 可以帮助你来判定这些信息。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息