如何从 Linux 命令行查看和监控磁盘空间使用情况

x33g5p2x  于2022-03-09 转载在 Linux  
字(1.6k)|赞(0)|评价(0)|浏览(503)

虽然通常很清楚您的系统是否内存不足或使用了过多的 CPU 时间,但磁盘使用率是另一个关键指标,如果您让服务器无人看管,随着时间的推移可能会悄悄影响您。您需要使用这些命令定期检查您的磁盘使用情况。

在 Linux 上检查磁盘使用情况

用于在几乎所有 Linux 系统上快速检查磁盘使用情况的实用程序是df,它代表“磁盘文件系统”。它只是打印出系统上所有文件系统的列表。

df -hT

此处的此命令使用两个标志调用,-h 即“人类可读”,它以 KB、MB 和 GB 打印出字节数,以及-T显示文件系统的类型。

df 将打印出每个文件系统的大小、已使用和可用的数量以及它在系统上的安装位置。

您会很快注意到您可能拥有比您预期更多的“文件系统”。该服务器只有一个固态驱动器,但有 20 多个文件系统。其中大部分是用于其他程序和服务的后端东西,例如 用于容器的压缩squashfs、虚拟 tmpfs 和 Docker系统。overlay

在此示例中,ext4 是真正的驱动器,这很明显,因为它安装在根目录下,但在多驱动器系统中可能无法立即清除。-t 如果需要,可以通过使用小写标志指定要查看的类型来过滤此列表:

df -hT -t ext4

-x 或者通过使用标志手动删除您不想看到的内容:

df -hT -x squashfs -x overlay -x tmpfs -x devtmpfs

您还可以询问df 任何特定文件系统的信息,甚至包括通配符以按名称匹配多个系统:

df -h /dev/md*

或者,您可以向它询问有关特定挂载的信息,这对于快速获取根系统上的信息最有用:

df -h /

监控一目了然

但大多数时候,您可能不想记住并键入一堆带有特定标志的命令。这就是该glances 实用程序的用途,我们强烈建议您尝试一下。

top 它基本上可以替代 和等内置实用程序htop,只是它显示了许多关于您的系统(即磁盘)的不同性能指标。默认情况下,它不包含在大多数 Linux 发行版中,但它是开源的,并且可以从 安装pip,因为它是一个 Python 应用程序。

sudo pip install glances

然后只需运行应用程序即可打开glances 仪表板:

glances

您会在左下角找到有关磁盘使用情况的一些信息,包括当前 I/O 速度以及每个物理磁盘的总使用情况。使用它,您可以在磁盘损坏系统之前轻松发现磁盘填充问题。

还有很多其他的实用程序可以用来监控你的系统,但是glances 检查所有的框,所以它是一个非常好的工具。

当您的磁盘使用率过高时发送警报

命令行工具的主要问题是它们要求您主动检查问题。但是问题可能会突然出现,因此最好事先得到通知。

因此,解决方案是设置一个自动cron 运行的日常作业,df 以检查根系统上的使用情况。它将与设定值进行比较,如果更大,它将发送一条消息。

#!/bin/bash
CURRENT=$(df / | grep / | awk '{ print $5}' | sed 's/%//g')
THRESHOLD=90

if [ "$CURRENT" -gt "$THRESHOLD" ] ; then
curl -X POST -H 'Content-type: application/json' --data "{\"text\":\"Your server \`$(hostname)\` is currently at ${CURRENT}% disk capacity.\"}"
fi

对于如何获取消息,您有很多选择,这取决于您的首选联系人。最简单的方法是设置mail 实用程序以从命令行向您发送电子邮件。您可以阅读我们关于设置 Postfix为您处理此问题的文章。

一种更酷的方法是直接在您活跃的消息传递平台上向自己发送消息,例如从您的服务器设置 Slack 通知,这可以使用带有curl POST 请求的 webhook 轻松完成。

相关文章