使用df -h如何创建自定义警报条件

时间:2019-05-19 15:54:28

标签: linux bash shell awk df

使用df -hawktailtr,如何创建自定义“警报”列,该列应显示/ mnt / hgfs的以下指示之一:

  • 警告:如果入住率在75%到80%之间
  • 严重:如果入住率在81%到95%之间
  • 警报:如果该比率大于96%

1 个答案:

答案 0 :(得分:-1)

编辑:它一直保持下去。

df |awk -v threshold="75 81 96" -v message="Warning Critical Alarm" -v mnt="/mnt/hgfs" '
  BEGIN {n=split(threshold, T); split(message, M)}
  $NF == mnt {
    for(i=n; i>0; i--)
      if(int($5) > T[i]) {print M[i] ":", mnt, "usage:", $5; exit}
    print mnt, "usage normal"                                                                                                                                               
  }'
  1. 将您的任意值导入为以空格分隔的字符串。
  2. split列成数组;使用n=split()
  3. 获取元素数
  4. 在最后一列为“ / mnt / hgfs”的任何行上,i在T(hreshold)数组上向后终止,将第五列(Use%)与每个值进行比较。如果更大,则对M(essage)数组使用相同的值打印警告消息,然后在执行其他比较之前退出。

新要求的解决方案:

df |awk '
  NR == 1      {alert="Alert"}
  int($5) < 75 {alert=""}
  int($5) > 75 {alert="Warning"}
  int($5) > 81 {alert="Critical"}
  int($5) > 96 {alert="Alarm"}
               {printf("%-10s%s\n", alert, $0)}'