Answers:
我不确定是否有内置的工具,但是假设您保留默认值5%的预留空间,那么这将告诉您:
df / | grep dev | cut -f 3,6 -d\ | awk '{print ($1*.05)+$2}'
df
根目录,grep
其中包含dev(删除标题)的行,cut
大小和可用字段,然后使用awk
脚本计算添加到可用磁盘的磁盘大小的5%。
您可以从中获取实际预留tune2fs -l <device>
,并将其与上面的脚本结合在一起。
cut
命令:您可以awk
直接选择字段。实际上,该cut
命令对我不起作用。无论如何,我给出了另一个答案,应该给出更精确的答案。
tune2fs -m <percentage> <device-name>
以更改仅留给root用户使用的磁盘空间。
sudo tune2fs -l $(df | grep -E '/$' | cut -d\ -f 1) | egrep "Reserved block count|Block size" | paste -sd\ | awk '{print ($4 * $7 / ( 1024 * 1024 ) ), "MB"}'
tune2fs /dev/sda1
甚至更好stat -f -c '%a blocks free and %f blocks free for root (%S bytes per block)' /
通过使用命令tune2fs(可在/ sbin / tune2fs中找到),可以轻松确定预留空间:(还有更多!)
tune2fs -l /dev/sda1
我将提供系统的信息以供参考,我将删除对这个问题不重要的多余行:
标头...和卷名,我标记了所有驱动器,以便在需要时易于识别。
tune2fs 1.42.4 (12-Jun-2012)
Filesystem volume name: xenon
Last mounted on: /
...
当系统运行时,真的要这样说“干净”。诚实!
Filesystem state: clean
这是数据存储容量信息的开始位置:
在这里,您可以看到我总共有121,179,648个块...,块大小为4K(4096),可以乘以一个较大的数字(462-ish GB)。(块大小如下所示)
Block count: 121179648
和保留的块...通过查看上面的数字和下面的数字..您应该能够比较快地得出我保留了1%的信息。在这种情况下(4.62 ish GB)
Reserved block count: 1211796
当前有多少可用空间?就在这儿!
Free blocks: 104090586
...
以及所有重要的块大小。对乘法有用。
Block size: 4096
...
这些行说WHO块是为...保留的,用户0,root,在这种情况下
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
...
这里有很多可用的信息,但这应该使您能够快速确定有多少可用资源,以及为根保留多少资源。简单的数学。
希望这可以帮助。记住...手册页是您的朋友。
这将显示与“ / path”相关的分区中的可用空间(以字节为单位)
printf '%s' $(($(stat -f --format='%f*%S' /path)))
您不必是超级用户即可运行它。
顺便说一句我不太明白之间有什么区别
%s块大小(用于更快的传输)
%S基本块大小(用于块计数)
在使用中stat
。
bc
以获取字节数,甚至可以--format='%f*%S/1024/1024/1024' | bc
根据所选择的分区数来获取千字节/兆字节/千兆字节。
bc
,则可以根据需要获得任意精度的商。
tune2fs -l /dev/DEVICE | egrep "Block count|Reserved block count"
。例如,对于我的“多媒体缓冲区”分区:Block count: 2621440
和Reserved block count: 128449
:可用块的4.9%(保守设置有助于防止碎片化)。