使用df -h
,awk
,tail
,tr
,如何创建自定义“警报”列,该列应显示/ mnt / hgfs的以下指示之一:
答案 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"
}'
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)}'