我搜索过 serverfault、SO 和其他网站,但找不到明确的答案。我阅读了一些有关 Linux 存储和文件系统的基础知识,但我仍然不清楚如何解决我的问题。
我的目标是对我们环境中的服务器的磁盘空间和使用情况进行简单评估。我们将在每台服务器上运行包含 df -k 命令的 bash 脚本。输出文本将被收集以进行解析和分析。我无法理解如何正确评估 df -k 输出以得出总磁盘空间和使用情况。
目前,我们忽略了网络和 LVM 映射存储(尽管我怀疑它们会比这种情况更复杂)。我将在不久的将来处理这些问题。目前,我很难理解简单的场景。
场景 1: 我在 Oracle Cloud 中创建了一个 Oracle Linux 7.9 VM,其默认启动卷为46GB。df -h 输出返回以下内容:
Filesystem Size Used Avail Use% Mounted on
devtmpfs 7.6G 0 7.6G 0% /dev
tmpfs 7.6G 0 7.6G 0% /dev/shm
tmpfs 7.6G 8.7M 7.6G 1% /run
tmpfs 7.6G 0 7.6G 0% /sys/fs/cgroup
/dev/sda3 39G 2.8G 36G 8% /
/dev/sda1 200M 7.4M 193M 4% /boot/efi
tmpfs 1.6G 0 1.6G 0% /run/user/0
tmpfs 1.6G 0 1.6G 0% /run/user/994
tmpfs 1.6G 0 1.6G 0% /run/user/1000
问题 1:我可以应用什么一致的逻辑来计算总磁盘空间和使用情况?在本例中,我可以看到(sda3 +一7.6GB tmpfs 条目)将使我达到 46GB,那么我是否应该忽略后续的 7.6G tmpfs 条目和所有 1.6G tmpfs 条目?鉴于 tmpfs 是易失性的而不是实际存储,我是否应该简单地忽略所有 tmpfs 条目?在这种情况下,我如何才能达到 46GB 的总存储量?
场景 2: 我在 Oracle Cloud 中创建了一个 Oracle Linux 7.9 VM,其默认启动卷为200GB。df -h 输出返回以下内容:
Filesystem Size Used Avail Use% Mounted on
devtmpfs 30G 0 30G 0% /dev
tmpfs 30G 0 30G 0% /dev/shm
tmpfs 30G 8.8M 30G 1% /run
tmpfs 30G 0 30G 0% /sys/fs/cgroup
/dev/sda3 39G 3.5G 35G 9% /
/dev/sda1 200M 7.4M 193M 4% /boot/efi
tmpfs 5.9G 0 5.9G 0% /run/user/0
tmpfs 5.9G 0 5.9G 0% /run/user/994
tmpfs 5.9G 0 5.9G 0% /run/user/1000
问题2:这更令人困惑。我怎么才能得到 200GB 的总磁盘大小?看来我需要计算 sdaX 和 (所有 tmpfs 条目)达到 200GB。我很难找到两种情况的一致逻辑。
希望我的问题已经解答。我很乐意提供任何额外的详细信息和/或说明。
答案1
临时文件文件系统是 RAM 磁盘,与您的存储介质无关。
在第二种情况下,您的 200GB 磁盘包含 39GB 的根文件系统、200MB 的启动文件系统、可能还有大小未知的交换空间以及大量的可用空间。
要查看交换空间,请运行swapon -s
。要查看可用空间,请使用分区工具(如fdisk -l
或 )parted /dev/sda print
。
您似乎没有在 LVM 卷或网络存储上使用文件系统。它们将通过 列出df
。