我搜索了 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 AND(所有 tmpfs 条目)才能达到 200GB。我很难为这两种情况找到一致的逻辑。
我希望我的问题很清楚。我很乐意提供任何额外的细节和/或澄清。
tmpfs文件系统是 RAM 磁盘,与您的存储介质无关。
在第二种情况下,您的 200GB 磁盘包含一个 39GB 的根文件系统、一个 200MB 的引导文件系统、可能是未知大小的交换空间以及可能有大量可用空间。
要查看交换空间,请运行
swapon -s
. 要查看可用空间,请使用fdisk -l
或之类的分区工具parted /dev/sda print
。您似乎没有在 LVM 卷或网络存储上使用文件系统。它们将由 列出
df
。