2

我正在使用“ df -h ”命令在我的目录中获取磁盘空间详细信息,它给我的响应如下:

在此处输入图像描述

现在我希望能够通过一些批处理或脚本自动执行此检查 - 所以我想知道,我是否能够仅检查我关心的特定文件夹的磁盘空间,如图所示 - 我只应该检查/nas/home是否不超过 75%。

我怎样才能做到这一点?有什么帮助吗?


我到目前为止的工作:

我在用

df -h > DiskData.txt

...这输出到一个文本文件

grep "/nas/home" "DiskData.txt"

...这给了我输出:

*500G  254G  247G  51% /nas/home*

现在我希望能够搜索“%”符号之前或附近的数字(在本例中为 51)以实现我想要的。

4

3 回答 3

5

此命令将为您提供 /nas/home 目录的百分比

df /nas/home | awk '{ print $4 }' | tail -n 1| cut -d'%' -f1

所以基本上你可以在某个变量中使用 store 作为值,然后应用 if else 条件。

var=`df /nas/home | awk '{ print $4 }' | tail -n 1| cut -d'%' -f1`
if(var>75){
#send email
}
于 2017-08-14T04:32:00.653 回答
3

另一种变体:

df --output=pcent /nas/home | tail -n 1 | tr -d '[:space:]|%'

output=pcent - 仅显示百分比值(对于 coreutils => 8.21 )

于 2017-08-14T05:17:21.503 回答
1

没有大量管道的更简洁的方法可能是:

df -h /nas/home | perl -ane 'print substr $F[3],0,-1 if $.==2'

返回:51对于您的示例。

于 2017-08-14T07:06:10.100 回答