如果磁盘空间超过75,则退出脚本的shell脚本

时间:2018-11-13 03:15:37

标签: awk

如果磁盘空间超出阈值(例如:75%),我希望脚本退出脚本​​。在下面尝试,但没有运气。

df -kh | awk '{if( 0+$5 >= 75 ) exit;}'

尝试上述命令,它不起作用。谁能帮我这个忙。

2 个答案:

答案 0 :(得分:0)

这是因为您的df输出不在一行左右,为此,您需要添加-P选项,并尝试执行一次。

df -hP  | awk '{if( 0+$5 >= 75 ){print "exiting now..";exit 1}}'

OR

df -hP | awk '$5+0>=75{print "exiting now..";exit 1}'

具有挂载名称的人,这是违反阈值的罪魁祸首。

df -hP | awk '$5+0>=75{print "Mount " $1 " has crossed threshold so exiting now..";exit 1}' 

如果您的框中没有-P选项,请尝试执行以下操作。

df -k | awk '/^ +/ && $4+0>=75{print "Mount " prev"  has crossed threshold so exiting now..";exit 1} !/^ +/{prev=$0}'

我正在使用print语句来确保exit正常运行。 -P选项也在BASH系统上进行了测试。

由于OP告诉他需要退出完整的脚本本身,因此要求OP在其代码的for循环之外添加以下代码。(尽管我没有对其进行测试,但这应该可以工作)

if [[ $? -eq 1 ]]
then
    echo "Exiting the complete script now..."
    exit
else
    echo "Looks good so going further in script now.."
fi

答案 1 :(得分:0)

如果要在脚本中使用此命令退出脚本(而不是退出较长的awk脚本),则需要从外部脚本调用exit:

if df -kh | awk  '{if ($5+0 > 75) exit 1 }'; then echo OK; else echo NOT; fi

不要忘记df每个安装点返回一行,您可以这样做:

if dk -kh /home ....

检查特定的安装点。