我试图将“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}'
请注意,这将包括网络安装,添加-l
到df
命令以仅显示本地分区。