获取服务器上最大的分区

获取服务器上最大的分区

我试图将“df -h”中最大的分区放入变量中,但没有成功。

Filesystem      Size  Used Avail Use% Mounted on
udev            462M     0  462M   0% /dev
tmpfs            99M  5.7M   93M   6% /run
/dev/xvda1       25G   20G  3.5G  86% /
tmpfs           493M     0  493M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           493M     0  493M   0% /sys/fs/cgroup
/dev/loop0       88M   88M     0 100% /snap/go/4289
/dev/loop2       89M   89M     0 100% /snap/core/7270
/dev/loop1      6.8M  6.8M     0 100% /snap/amass/684
/dev/loop5       89M   89M     0 100% /snap/core/7396
/dev/loop4       88M   88M     0 100% /snap/go/4301
/dev/loop3      6.7M  6.7M     0 100% /snap/amass/687
tmpfs            99M  4.0K   99M   1% /run/user/133
tmpfs            99M     0   99M   0% /run/user/1000

如您所见,“/”在此服务器上拥有最多的可用磁盘空间,我想将其设置为变量。

但是我将在许多服务器上运行此脚本,因此不确定“/”是否是具有最多可用磁盘空间的分区。所以我需要将具有最多可用磁盘空间的分区设置为变量

谢谢!

答案1

按照@Jos 的建议,现在可以使用以下命令“df -h |sort -k 2 -h -r |head -1|cut -b 39-70”完成这项工作,第 39 个字符是分区名称的开头。

答案2

将输出限制df到您需要的字段,这样将更容易sort获取所需的信息:

df --output=size,target | sort -nr | awk 'NR==1{print $2}'

awk仅:

 df --output=size,target | awk '$1>s{s=$1;d=$2}END{print d}'

请注意,这将包括网络安装,添加-ldf命令以仅显示本地分区。

相关内容