使用df -h
, awk
, tail
, tr
, 如何创建自定义“警报”列,该列应显示 /mnt/hgfs 的以下指示之一:
- 警告:如果入住率在 75% 和 80% 之间
- 严重:如果入住率在 81% 和 95% 之间
- 警报:如果比率大于 96%
使用df -h
, awk
, tail
, tr
, 如何创建自定义“警报”列,该列应显示 /mnt/hgfs 的以下指示之一:
编辑:它熬夜。
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"
}'
split
列表成数组;获取元素的数量n=split()
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)}'