【问题标题】:Use 'df -h' to check % remaining disk space of a specific folder使用“df -h”检查特定文件夹的剩余磁盘空间百分比
【发布时间】:2017-08-14 03:53:16
【问题描述】:

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

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

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


到目前为止我的工作:

我正在使用

df -h > DiskData.txt

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

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

...这给了我输出:

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

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

【问题讨论】:

  • 是的,您可以进行检查。但是如果超过 75% 你想做什么?你可以写bash脚本,放到crontab里,这样你就可以自动定期检查了
  • 我想实际发送一封超过 75% 的邮件,但现在回显就可以了,请检查更新后的问题

标签: bash shell linux-disk-free


【解决方案1】:

这个命令会给你/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
}

【讨论】:

  • df /nas/home | awk '{ 打印 $5 }' |尾-n 1| cut -d'%' -f1 给出 - /nas/home 而不是 51
  • 你能提供以下命令'df /nas/home'的输出吗
  • 文件系统 1K-blocks Used Available Use% Mounted on d2cnas:/dev_home 524288000 266297856 257990144 51% /nas/home
  • 以上是df /nas/home的输出
  • 我已经更新了我的解决方案。现在尝试一次。使用 df /nas/home | awk '{ 打印 $4 }' |尾-n 1|剪切 -d'%' -f1
【解决方案2】:

另一种变体:

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

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

【讨论】:

  • 请分享您的输出
  • 版本 coreutils?
  • df: 无法识别的选项 '--output=pcent' 尝试使用 `df --help' 获取更多信息。
  • 你的coreutils版本低于8.21(你可以用df --version检查)
【解决方案3】:

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

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

返回:51 为您的示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-26
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多