Chinaunix首页 | 论坛 | 博客
  • 博客访问: 198851
  • 博文数量: 22
  • 博客积分: 851
  • 博客等级: 准尉
  • 技术积分: 245
  • 用 户 组: 普通用户
  • 注册时间: 2005-04-17 22:13
文章分类

全部博文(22)

文章存档

2012年(2)

2011年(6)

2010年(11)

2009年(1)

2005年(2)

我的朋友

分类: 系统运维

2011-10-27 16:15:30

检查文件系统的使用情况(文件系统可用空间大小),输出使用空间大于90%的行,使用awk处理,各系统测试如下。
目前有2个思路:
1匹配字符串(匹配字符、数字,下述本意一样,但是不同操作系统上测试支持的语法有少许区别)
df -k|awk '$5!~/[1-8].%/ && $5!~/^[0-9]%/ {print}' (solaris):

bdf|awk 'NF==1 {printf $1;next}{print}'|awk '$5!~/[1-8].%/ && $5!~/^[0-9]%/ {print}'   (HP-UX):
bdf|awk 'NF==1 {printf $1;next}{print}'|awk '$5!~/(^[1-8][0-9]%|^[0-9]%)/ {print}'     (HP-UX)

df -g|awk '$4!~/(-|[1-8].%|^[0-9]%)/ {print}'         (AIX)
awk '$4!~/[1-8].%/ && $4!~/(^[0-9]%|-)/ {print}'       (AIX)

2: 计算对应列值大于89的,再输出:
df -g|sed '2,$s/%//g'|awk 'BEGIN{OFS="\t"}; NR==1 {print $0}; NR>1&&($4>89 ||$6>89) {print $1,$2,$3,$4"%",$5,$6"%",$7}'                           (AIX 考虑了inode得使用百分比)

df -k|sed '2,$s/%//g'|awk 'BEGIN{OFS="\t"}  NR==1 {print $0} NR>1&&$5>89 {print $1,$2,$3,$4,$5"%",$6}'                        (solaris )
df -k|sed '2,$s/%//g'|awk 'BEGIN {OFS="\t"}NR==1 {print $0} NR>1&&$5>89 {printf"%15s %10s %10s %10s %4s %-10s\n", $1,$2,$3,$4,$5,$6}'     (solaris 格式化输出,稍微处理了下,需继续处理)

HP-UX的对应列和awk的语句同solaris只是将df -k换成bdf(同时bdf的结果在长字段时会自动换行,造成本来应该是一行的内容变为2行,需要处理一下 awk 'NF==1 {printf $1;next}{print}')

先测试这么多,后期有时间再考虑简化一下。









阅读(1648) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~