Board logo

标题: Unix/Linux 系统自动化管理 磁盘管理篇(1) [打印本页]

作者: look_w    时间: 2018-6-13 15:26     标题: Unix/Linux 系统自动化管理 磁盘管理篇(1)

在 Unix/Linux 系统的日常管理工作中,系统管理员可能会遇到因磁盘空间耗尽而导致丢失数据,或者系统崩溃等。这些严重的事故极大的影响了工作效率。因此,关注系统的磁盘使用情况,建立一个警告系统对磁盘空间的潜在问题发出警告,确保文件系统没有被填满或滥用是系统管理的一个重要的方面。
在本文中,作者介绍了一些查看磁盘使用情况的工具命令并结合这些工具实现了一个自动化监控磁盘空间的示范脚本。通过介绍,读者将了解如何监视磁盘空间、如何发现究竟是哪些文件系统占用了大部分的空间并以此为依据做出相应的调整。
Unix/Linux 磁盘管理相关命令介绍获取硬盘的属性信息在获知磁盘使用状态之前,你可能需要知道你当前的系统使用的是什么类型的磁盘,它的属性参数是什么。目前大多数的 Linux/Unix 服务器硬盘使用 SCSI 或 IDE 硬盘。在 Linux 和 AIX 中查看硬盘的属性使用不同的命令,下面的例子给出了在不同系统上如何获得硬盘属性,其中包括制造商,机器型号,序列号等。
清单 1. 在 RHEL5.3 系统上查看 SCSI 硬盘的属性
1
2
3
4
5
6
7
8
9
10
# 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




清单 2. 在 AIX6.1 系统上显示硬盘配置信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 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 中的概念和使用方法非常相似。
通过在 Linux 系统上面使用 fdisk 命令可以获得硬盘分区信息。而在 AIX 系统上,用户可以使用 lspv 来获得一个硬盘上的逻辑卷与文件系统对应信息。
显示磁盘空间占用情况在 Linux 和 AIX 系统上,都提供了一个 df 命令。df 的功能是检查文件系统的磁盘空间占用情况以及可用性,通常还包挂载点。管理员能利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。 df 的参数在 AIX 和 Linux 系统上略有不同。管理员可以通过查看用户手册来确定它的用法。
清单 3 .df 命令在 AIX6.1 系统上的缺省输出
1
2
3
4
5
6
7
8
9
10
# df
Filesystem    512-blocks      Free %Used    Iused %Iused Mounted on
/dev/hd4          360448     84208   77%     9790    48% /
/dev/hd2         3309568    298576   91%    30742    47% /usr
/dev/hd9var       163840    124448   25%      514     4% /var
/dev/hd3          131072    122696    7%       70     1% /tmp
/dev/hd1           32768     32064    3%        5     1% /home
/dev/hd11admin     262144    261416    1%        5     1% /admin
/proc                  -         -    -         -     -  
/proc/dev/hd10opt      294912    127536   57%     1661    11% /opt




在上面 df 的输出列表中,第一列是表示文件系统对应的设备文件的路径名;第二列给出分区包含的数据块的数目;第三列表示可用的数据块数目,在缺省的每个分区都留了少量空间供系统管理员使用,即使遇见普通用户空间已满的情况,管理员仍能登录和留有解决问题所需的工作空间;清单中第四列 use% 列表示普通用户空间使用的百分比;最后一列表示文件系统的安装点。
需要注意的是上面显示的大小是以 512 字节块为单位,而不是千字节。缺省情况下,几乎所有传统的 UNIX 操作系统都以 512 字节块为单位报告大小。要获得以 1K 块为单位的信息,可以使用 -k 命令行选项,要获得以 MB 为单位的信息,需要使用 -m 命令,要获得以 GB 为单位的信息,需要使用 -g 命令行选项。
df 工具在 Linux 上默认显示是以 1K 字节为单位的。在 Linux 系统上,-h 选项是比较常用的选项,它能使得显示的内容简单易读。
清单 4. 带 -h 选项的 df 命令在 SLES 上的输出
1
2
3
4
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda6              38G   16G   23G  41% /
udev                  1.5G   96K  1.5G   1% /dev




显示目录或文件占用磁盘空间大小du 命令并不是显示磁盘的空闲空间,而是显示磁盘使用情况的信息,它将统计目录或文件所占磁盘空间的大小。du 命令用于确定文件和目录的磁盘使用情况。
该命令可逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块的情况。若没有给出目录或文件的名字,则对当前目录进行统计。
下面的 du 输出清单中的第一列是以块为单位计的磁盘空间容量,第二列列出目录中使用这些空间的目录和文件名称。 带 -a 选项的 du 命令将从当前目录开始沿着目录结构向下直到列出所有目录和文件的容量为止。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#du -a
0       ./lost+found
0       ./.oslevel.datafiles/.oslevel.hold
8       ./.oslevel.datafiles/.oslevel.mlinfo.cache
8       ./diagSEgenSnap/general/emgr.snap
2304    ./diagSEgenSnap/general/trcfmt
8       ./diagSEgenSnap/general/inittab
8       ./diagSEgenSnap/general/survdump.settings
4976    ./diagSEgenSnap/general
1448    ./diagSEgenSnap/snapH.pax.Z
6424    ./diagSEgenSnap
8       ./.ctinst.log
0       ./rc.net.serial.out
400     ./lvmt.log

7344






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0