在运营服务器时,有时会突然遇到可怕的“磁盘已满”警告。😱 这可能导致服务停止或系统变慢等严重问题。
今天,我们将学习在这种紧急情况下,如何冷静地释放磁盘空间的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% 大幅下降,您会感到安心。😊
现在您的服务器可以再次顺畅运行了。今后,养成定期检查磁盘空间的习惯,以预防此类紧急情况,是不是很好呢?
发表回复