10个步骤解决Linux磁盘空间告急

2023-11-23 15:25:30 浏览数 (1)

近日见闻

  1. TypeScript 5.3 已正式发布。
  2. Sam Altman 重返 OpenAI 担任首席执行官。”我们已达成原则性协议,让 Sam 重返 OpenAI 担任首席执行官,并组建由 Bret Taylor(主席)、Larry Summers 和 Adam D'Angelo 组成的新董事会。”
  3. FreeBSD 14.0 正式发布。

恢复Linux磁盘空间全面指南

运维告警里比较常见的就是磁盘空间超过告警阀值的情况,遇到这种情况是最常见的,只要不影响业务以及不是快速占满磁盘的情况下,就可以慢慢着手解决问题。以下是比较常用的步骤。

步骤1:检查磁盘空间

首先,你需要知道问题的所在。通过终端,你可以使用 df 命令查看磁盘空间使用情况。

代码语言:javascript复制
df -h

这个命令会列出每个挂载点的可用空间,-h 参数让信息以易读的格式(如GB、MB)显示。

步骤2:找出占用空间最多的文件和目录

一旦你知道了空间资源紧张的分区,你可以使用 du 命令来找出哪些文件或目录占用了最多的空间。

代码语言:javascript复制
du -sh /path/to/directory | sort -rh | head -20

这个命令将在指定目录下显示占用空间最大的前20个文件或目录。

使用ncdu工具

ncdu是一个用于查看磁盘使用情况的简单工具,提供了一个基于文本的用户界面。

安装ncdu(如果尚未安装):

代码语言:javascript复制
sudo apt-get install ncdu # Debian/Ubuntu系统
sudo yum install ncdu # CentOS系统

使用ncdu扫描文件系统:

代码语言:javascript复制
ncdu /

步骤3:删除不必要的文件

检查列表中的项目,看看是否有不再需要的文件或者可以转移到其他存储设备的数据。使用 rm 命令来删除文件:

代码语言:javascript复制
rm /path/to/unwanted/file

对于目录,你可以使用带有 -r(递归)标志的 rm 命令:

代码语言:javascript复制
rm -r /path/to/unwanted/directory

注意: 使用 rm 命令时要非常小心,因为删除后无法恢复。

使用find命令删除旧文件

自动查找并删除一定时间前的文件:

代码语言:javascript复制
find /path/to/directory -type f -mtime  30 -exec rm {} ;

这个命令会删除30天前的文件。

步骤4:清理缓存和临时文件

Linux系统经常存储临时文件和缓存,这些文件随着时间的推移可能会占用大量的空间。使用以下命令清理:

代码语言:javascript复制
sudo apt-get clean       # 对于Debian系的系统
sudo yum clean all       # 对于RedHat系的系统

此外,你可以手动删除 /tmp 目录下的文件。

代码语言:javascript复制
sudo rm -rf /tmp/*

步骤5:日志文件管理

日志文件是另一个可能占用大量空间的来源。查看 /var/log 目录,并考虑删除旧的或不必要的日志文件。你可以使用 logrotate 工具来帮助管理日志文件。

代码语言:javascript复制
sudo find /var/log -type f -name "*.log" -mtime  30 -exec rm {} ;

步骤6:查找并删除重复文件

有时候,系统中可能会有不小心复制的重复文件。你可以使用 fdupesrdfind 等工具来找到和删除这些文件。

代码语言:javascript复制
sudo apt-get install fdupes # Debian/Ubuntu系统
sudo yum install fdupes # CentOS系统

fdupes -r /path/to/directory

步骤7:磁盘配额管理

如果是多用户系统,考虑设置磁盘配额来限制用户使用的空间量,这可以通过 quotacheckquotaonedquota 等命令完成。

步骤8:扩展磁盘空间

扩展硬盘空间最直接,这可能包括添加新的硬盘、调整分区大小或使用网络附加存储(NAS)。

步骤9:使用文件系统特性

如果文件系统支持,比如xfs可以通过启用压缩来节省空间。

步骤10:压缩文件

如果它们不是经常访问,可以使用压缩工具如tar和gzip来减少它们的大小:

代码语言:javascript复制
tar -czvf name-of-archive.tar.gz /path/to/directory

磁盘空间的管理是Linux系统维护的重要组成部分。通过定期检查和清理,可以确保系统运行顺畅,并避免因磁盘空间不足导致的问题。始终在执行删除操作前备份重要数据,以防意外发生。

0 人点赞