【问题标题】:display used disk space including reserve disk space in bash显示已用磁盘空间,包括 bash 中的保留磁盘空间
【发布时间】:2017-10-07 00:12:35
【问题描述】:

我需要将已用磁盘空间显示为 (used+reserved),我在下面创建了脚本并计划添加 used 和 reserved,有没有更好的方法来做到这一点?

我需要以这种格式显示“可用磁盘总数”,单位为 GB。

#!/bin/sh

output=`df -h --output=source,size,used,avail /dev/vd* /dev/disk/* -x devtmpfs | grep -v 'Filesystem' | awk '{printf $1 "\t" $2 "\t" $3 "\t" $4 "\n" }'`
while read -r line; do
    diskname=`echo $line|awk -F " " '{print $1}'`
    reserved=`tune2fs -l $diskname|grep -i "Reserved block count"|awk -F ":" '{print $2}'`
    reservedInGB=`echo "$((((( $reserved * 4096 ) / 1024 ) / 1024 )))"|bc -l`
    total=`echo $line|awk -F " " '{print $2}'`
    used=`echo $line|awk -F " " '{print $3}'`
    free=`echo $line|awk -F " " '{print $4}'`
    echo $diskname $total $used $free $reservedInGB
done <<< "$output"

【问题讨论】:

  • 在 df --output FIELD_LIST 保留磁盘空间选项中我没有找到

标签: linux bash diskspace stat linux-disk-free


【解决方案1】:

我的本​​地模拟不支持--output,但可以尝试类似的方法 - 调整到规范。

df -PB 1GB -x devtmpfs /tmp | grep -v ^Filesystem |
   while read mnt size used avail cap disk
   do printf "%-10s %4d %4d %4d\n" $disk $size $used $avail
   done

请注意,挂载中的嵌入空格会破坏这一点,但它会在使用df 生成数据时处理转换为 GB 的问题。因为我不能做--output,所以我没有理由不使用-P 来确保挂载点及其数据出现在同一行。进行读取,因此只要字段正确放置,重新排序也很容易。

【讨论】:

  • 输出不包含精确的浮点值,并且保留磁盘空间也不包含在输出中。
  • 正如我所说,调整到规范。它也有一个过度限制的磁盘长度。只是根据需要提供一个通用示例进行详细说明。
【解决方案2】:

试试类似的方法

df -h --output=source,size,used,avail | tail -n +2 | \
while read line; \
do printf "%s\t%s\n" "$line" \
"your calc with tune2fs and ${line%%[[:space:]]*}";done

【讨论】:

  • 输出不包含reserve+used代替已用空间。
  • 是的,它也不包含我的女孩的年龄。我会告诉你方法和另一个答案,在这是你的工作之后。
猜你喜欢
  • 2015-06-06
  • 1970-01-01
  • 1970-01-01
  • 2020-07-12
  • 1970-01-01
  • 1970-01-01
  • 2019-12-12
  • 1970-01-01
  • 2014-12-28
相关资源
最近更新 更多