Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > Linux磁盘空间耗尽导致系统故障

Linux磁盘空间耗尽导致系统故障问题及说明

作者:brahityq

文章主要内容是Linux系统磁盘耗尽导致报错的排障和维护思路,包括确认故障、查找占用空间的文件或目录、清理文件以及预防措施,还介绍了ncdu工具的使用方法和日志管理、临时文件管理、软链接和硬链接、磁盘配额等高级维护技巧

Linux出现磁盘耗尽导致报错排障和维护思路

Linux系统有一个比较常见的系统故障就是磁盘使用空间耗尽,导致系统无法正常运行,同时可能伴随着无法写入日志、启动新进程,甚至某些服务会崩溃。

为了解决上述问题,就必须要进行磁盘的清理和维护,以便系统可以正常运行。

1.确认故障

首先我们需要进入系统内部查看磁盘的使用情况,一般使用df -h的命令就可以进行查看Linux系统中哪个磁盘对应的哪个分区出现了磁盘空间占满的情况。


字段解释

字段解释
Filesystem文件系统名称或磁盘分区标识
Size文件系统的总大小
Used文件系统已用空间大小
Avail文件系统可用空间大小
Use%文件系统使用的百分比
Mounted on文件系统挂载的位置(目录)

详细解释

udevtmpfs

/dev/vda2

挂载点 tmpfs

多个 tmpfs 文件系统基于内存挂载,分别用于:

/dev/loopX

/dev/vdb

tmpfs (最后一行)

2.finding占用空间的文件或目录

使用 du -sh /*du -sh /var/*等类似的命令,逐层查找大文件或大目录,并定位具体占用空间的文件。

————此处最好使用Linux最高权限用户root,否则会导致有些文件由于权限的原因无法进行读取信息。



这里需要我们进行一层一层的查询,确认最终哪个目录的哪个文件或者文件夹的磁盘占用最大的文件。

3.清理文件

删除无用日志文件或临时文件,比如使用命令rm -rf /var/log/*清理日志文件(但是最好将近期的日志文件进行拷贝到其他的地方,以便出现其他服务异常的时候,可以通过日志进行查询)。同时也可以根据实际需求对其他无用文件进行清理或迁移。

4.预防措施

设置日志轮转(logrotate)来自动管理日志文件,避免将来类似的问题,同时,可以设置磁盘空间报警,提前发现空间不足的问题。以此来提高系统的高可用性。

Tips:

一、磁盘使用情况查询工具ncdu

ncdu 是一个基于 ncurses 的磁盘使用情况分析工具。它可以帮助您快速地查看文件系统中哪些文件或目录占用了较多的空间,并且以易于阅读的树状视图形式展示结果。

1. ncdu 的主要特点

直观的界面

快速扫描与分析

易于操作

跨平台支持

便携性

颜色编码

灵活的选项

2. 适用场景

3. 安装和使用

本次实机演示为ubuntu系统,后续的操作命令均是以其系统为主

在大多数 Linux 发行版中,可以直接通过包管理器安装:

# Debian/Ubuntu
sudo apt install ncdu

# CentOS/RHEL
sudo yum install ncdu

# macOS (通过 Homebrew)
brew install ncdu

4. 基本用法

4.1 如何查看需要或适用的参数——help

ncdu --help 获取对应的帮助信息

ncdu <options> <directory>

这是您需要键入命令的格式

基本功能

界面与显示

-0, -1, -2:控制扫描时的用户界面显示

--si:使用十进制(基于 10 的 SI 前缀)显示文件大小

文件和目录处理

ncdu --exclude '*.log' /var

# 上述命令会扫描 /var 目录,但排除所有 .log 文件。
*.log
*.tmp

然后运行:

ncdu -X exclude.txt /var

# 会排除所有 .log 和 .tmp 文件。

导入与导出

4.2 基础使用 + 演示

4.2.1 扫描当前目录并显示结果

ncdu

4.2.2 扫描 /var 目录并排除 .log 文件

ncdu --exclude '*.log' /var

4.2.3 扫描 /data 并将结果导出到data_scan.dat

ncdu -o data_scan.dat /data

4.2.4 读取之前的扫描结果

ncdu -f data_scan.dat


4.2.5 只扫描根目录,不跨越到其他文件系统

ncdu -x /

4.2.6 排除缓存目录并显示文件大小单位为 SI 前缀:

ncdu --exclude-caches --si /path/to/directory

4.2.7 设置颜色

ncdu --color dark /home

二、日志管理

通过配置logrotate,可以设置日志文件的轮转、压缩和删除时间点。

例如,在/etc/logrotate.d目录下,对某个日志文件进行配置,确保它按时归档和清理。

三、临时文件管理

Linux系统中,/tmp/var/tmp 目录通常用于存放临时文件。

定期清理这些目录的文件,或者设置 tmpwatch 来自动出除过期的临时文件,可以避免大量临时文件长期占用磁盘空间。

四、软链接和硬链接

有时候,多个文件其实是同样的数据,合理地使用硬链接可以减少实际占用的磁盘空间,同时,善用软链接也可以方便管理文件和目录结构。

五、磁盘配额

在多用户系统中,可以启用磁盘配额(quota),限制每个用户或用户组所能使用的磁盘空间,这可以有效防止单个用户因滥用磁盘空间而影响其他用户使用和系统正常运行。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文