AWK 检查 UNIX 文件系统空间 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

本文通过一行SHELL命令实现检查当前UNIX文件系统空间中是否存在超过指定百分比,从中可以看到awk命令的强大功能。

 

使用工具:df命令,awk命令
测试环境:AIX 5.x

 

系统管理员经常要求查看文件系统空间,防止文件系统剩余空间过小,影响系统运行。
我们最常使用的命令就是 df –P, 显示结果如下:
文件系统          512     已使用      可用     容量     安装于

/dev/hd4         2097152     39216   2057936       2% /

/dev/hd2        12320768   4870784   7449984      40% /usr

/dev/hd9var      1310720    152256   1158464      12% /var

/dev/hd3         2097152     94976   2002176       5% /tmp

/dev/fwdump       786432       776    785656       1% /var/001
/dev/hd1         4194304    519896   3674408      13% /home

/proc                  -         -         -       -  /proc

/dev/hd10opt     1310720    221232   1089488      17% /opt

/dev/lv00         262144      8320    253824       4% /var/002

/dev/fslv00     12320768   5440792   6879976      45% /003

/dev/fslv01     20971520    121104  20850416       1% /004

/dev/fslv02      4194304   1295464   2898840      31% /005

/dev/fslv03     41156608  22391056  18765552      55% /backup

 

命令如下:
df -P|awk -F% '{print $1,$2}'|awk 'NR>1 && $5>50 {print $5,$6}'

 

说明:
1. df –P   显示各文件系统占用情况。
2. awk –F% ‘{print $1,$2}’    去除%
3. NR>1    从第二行开始统计,因为第一行为标题
4. $5>50    第五列的数大于50,也就是超过 50%
5. print $1,$5,$6     显示符合3,4条件的行的第1,5,6列,即文件系统,容量和安装位置。

 

输出结果:
/dev/fslv03 55 /backup

 

结语:
是不是很简单,只要一行命令就可以完成,UNIX下的SHELL功能很强,特别是AWK在文本的处理上是一把利剑。大家有什么好的脚本,也请拿出来分享。

 

如果只想知道有几个文件系统超过了指定比例,只要在上面的命令后面加上
|wc –l

即可得到输出结果:
------------------------------------------------------------------------------
1

 

作者:徒步天下 ([url]http://hiker2008.blog.51cto.com[/url] )