如果磁盘空间超出阈值(例如:75%),我希望脚本退出脚本。在下面尝试,但没有运气。
df -kh | awk '{if( 0+$5 >= 75 ) exit;}'
尝试上述命令,它不起作用。谁能帮我这个忙。
答案 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 ....
检查特定的安装点。