🚨 磁盘空间突然满了怎么办!Linux应急处理指南

在运营服务器时,有时会突然遇到可怕的“磁盘已满”警告。😱 这可能导致服务停止或系统变慢等严重问题。

今天,我们将学习在这种紧急情况下,如何冷静地释放磁盘空间的3步应急处理方法!


STEP 1: 🩺 检查磁盘状态:确认总容量

首先,您需要确认哪个分区(磁盘空间)已满。这就像医生诊断患者的病情一样。此时使用的命令就是 df -h。

  • df: disk free的缩写,显示文件系统的磁盘空间使用情况。
  • -h: human-readable的缩写,以人类易读的单位(GB、MB)显示容量。
df -h

执行该命令后,将显示类似以下的画面。

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G   49G  500M  98% /
udev             16G     0   16G   0% /dev
tmpfs           3.2G  1.2M  3.2G   1% /run
...

这里需要注意的是 Use% 和 Mounted on 列。

  • Use%: 显示磁盘使用率的百分比。在示例中,/dev/sda1 文件系统已使用 98%,表明它几乎已满。🚩
  • Mounted on: 这是文件系统挂载的目录路径。在示例中,它是根目录 /。接下来,我们将围绕此路径解决问题。

STEP 2: 🕵️‍♂️ 找出“罪魁祸首”:定位最大的文件

现在我们知道了哪个分区有问题,接下来就是找出占用该空间的“罪魁祸首”——最大的文件。

以下命令将在指定路径(Mounted on 路径)中找到并输出最大的单个文件。

# 请将 '/path/to/nearly-full-filesystem' 替换为上面确认的 'Mounted on' 路径。
# 示例: find / -type f -printf '%s %p
' | sort -rn | head -n 1

find /path/to/nearly-full-filesystem -type f -printf '%s %p
' | sort -rn | head -n 1

这个命令看起来有点复杂,但每个部分的作用都很简单。

  • find /路径: 从特定路径开始搜索。
  • -type f: 只查找“文件”,不包括目录。
  • -printf ‘%s %p

‘: 同时输出文件大小(字节)和文件路径。

  • | (管道): 将左侧命令的输出作为右侧命令的输入。
  • sort -rn: 将接收到的列表按数字大小(n)逆序(r)排序。(最大的文件在最上面!)
  • head -n 1: 只显示排序列表中最上面的第一行。

执行此命令后,将显示最大文件的大小和完整路径,如下所示。

15032385536 /var/log/some_huge_log_file.log

终于找到“罪魁祸首”了!🕵️‍♀️


STEP 3: 🗑️ 解决问题:删除大文件

既然找到了“罪魁祸首”,是时候处理它了。您可以使用 rm 命令删除该文件。

⚠️ 非常重要! ⚠️ 在删除之前,务必确认该文件确实是不必要的。删除系统运行必需的文件可能会导致不可逆转的问题。通常,旧的日志文件、不必要的备份文件和临时文件是删除的目标。

# 请将 '/path/to/largest_file' 替换为在 STEP 2 中找到的实际文件路径。
# 示例: rm /var/log/some_huge_log_file.log

rm /path/to/largest_file

执行该命令后,文件将被删除,并释放相应的磁盘空间。


✅ 结果确认:检查是否已释放空间!

最后,再次运行 df -h 命令,确认空间是否已成功释放。

df -h

看到 Use% 大幅下降,您会感到安心。😊

现在您的服务器可以再次顺畅运行了。今后,养成定期检查磁盘空间的习惯,以预防此类紧急情况,是不是很好呢?



Comments

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注