本文是 Unix/Linux 系统管理自动化系列中的一篇,主要讲述如何实现自动化监控磁盘空间状态并及时通知系统管理员采取相应措施。
在 Unix/Linux 系统的日常管理工作中,系统管理员可能会遇到因磁盘空间耗尽而导致丢失数据,或者系统崩溃等。这些严重的事故极大的影响了工作效率。因此,关注系统的磁盘使用情况,建立一个警告系统对磁盘空间的潜在问题发出警告,确保文件系统没有被填满或滥用是系统管理的一个重要的方面。
在本文中,作者介绍了一些查看磁盘使用情况的工具命令并结合这些工具实现了一个自动化监控磁盘空间的示范脚本。通过介绍,读者将了解如何监视磁盘空间、如何发现究竟是哪些文件系统占用了大部分的空间并以此为依据做出相应的调整。
在获知磁盘使用状态之前,你可能需要知道你当前的系统使用的是什么类型的磁盘,它的属性参数是什么。目前大多数的 Linux/Unix 服务器硬盘使用 SCSI 或 IDE 硬盘。在 Linux 和 AIX 中查看硬盘的属性使用不同的命令,下面的例子给出了在不同系统上如何获得硬盘属性,其中包括制造商,机器型号,序列号等。
# dmesg |grep scsi
vio_register_driver: driver ibmvscsi registering
ibmvscsi 30000002: SRP_VERSION: 16.a
scsi0 : IBM POWER Virtual SCSI Adapter 1.5.9
ibmvscsi 30000002: partner initialization complete
ibmvscsi 30000002: sent SRP login
ibmvscsi 30000002: SRP_LOGIN succeeded
ibmvscsi 30000002: host srp version: 16.a, host partition vios (1), OS 3, max io 1048576
sd 0:0:1:0: Attached scsi disk sda
sd 0:0:1:0: Attached scsi generic sg0 type 0
# lsdev -CHc disk
name status location description
hdisk0 Available 01-08-00-1,0 SCSI Disk Drive
上面的命令给出了系统可用的硬盘信息,从上面的输出可以看出,系统有一个可用的 SCSI 硬盘,如果要获得硬盘的配置信息,可以使用 lscfg 来查看。
# lscfg -vl hdisk0
hdisk0 U788D.001.99DZG0B-P1-T10-L1-L0 SCSI Disk Drive (36400 MB)
Manufacturer................IBM-ESXS
Machine Type and Model......ST936701SS
FRU Number..................39R7368
ROS Level and ID............42353142
Serial Number...............3LC0BGY8
EC Level....................H17923E
Part Number.................26K5266
Device Specific.(Z0)........000005129F00100A
Device Specific.(Z1)........0106B51B
Device Specific.(Z2)........1000
Device Specific.(Z3)........06114
Device Specific.(Z4)........0001
Device Specific.(Z5)........22
Device Specific.(Z6)........H17923E
Brand.......................XS
硬盘需要分区,格式化并挂载后方能使用,Linux 下硬盘上的每个分区表示为一个设备文件。AIX 系统对磁盘的管理和 Linux 系统不同,AIX 默认使用 LVM 对磁盘进行管理。传统的磁盘管理方法使用类似 fdisk 的工具对物理磁盘进行分区的划分和删除,每个分区的大小是固定的,在此基础上挂载文件系统。AIX 系统上将多个物理分区汇聚为一个卷组,然后再从中分割出一块一块的逻辑卷,在逻辑卷上可以创建文件系统。在较新的 Linux 版本中,也开始提供对 LVM 的支持,和 AIX 中的概念和使用方法非常相似。