Linux 磁盘满了怎么办?快速排查和清理方法

Linux 磁盘满了,会导致系统无法正常运行,比如无法写入文件、服务停止、甚至系统崩溃。因此,快速排查并清理磁盘空间是非常重要的。以下是详细的排查和解决步骤:


一、快速定位磁盘占用原因

1. 检查磁盘使用情况

使用 df 命令查看磁盘分区的使用情况:

bash

复制

df -h
  • 参数说明
    • -h:以人类可读的格式显示(GB、MB)。
  • 输出示例

    plaintext

    复制

    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda1        50G   45G  5G   90% /
    /dev/sda2       100G   95G  5G   95% /home
    

如果某个分区(如 //home)的 Use% 达到接近 100%,说明该分区已满。


2. 找出大文件和目录

(1) 使用 du 查找占用最多的目录

du 命令用于分析文件和文件夹的磁盘占用情况:

bash

复制

du -h --max-depth=1 /
  • 参数说明
    • -h:以人类可读的格式显示。
    • --max-depth=1:只查看顶级目录的大小。
  • 输出示例

    plaintext

    复制

    5.0G   /var
    20G    /home
    15G    /usr
    1.2G   /tmp
    

根据输出结果,进一步深入到占用空间较大的目录(如 /home):

bash

复制

du -h --max-depth=1 /home
(2) 使用 find 查找大文件

查找超过 1GB 的大文件:

bash

复制

find / -type f -size +1G 2>/dev/null
  • 参数说明
    • -type f:只查找文件。
    • -size +1G:查找大于 1GB 的文件。
    • 2>/dev/null:忽略权限不足导致的错误。

3. 检查挂载点问题

有时磁盘分区挂载错误可能导致文件写入到了根目录,而不是正确的挂载点:

  1. 检查是否有挂载问题:

    bash

    复制

    mount
    
  2. 如果某个挂载点(如 /mnt/data)没有正确挂载,可能会导致根分区被写满。
  3. 解决方法:
    • 确认挂载点:

      bash

      复制

      df -h
      
    • 如果未正确挂载,重新挂载分区:

      bash

      复制

      sudo mount /dev/sdX /mnt/data
      

二、清理磁盘空间

清理磁盘空间时,应谨慎操作,避免删除系统关键文件。以下是常见的清理方法:


1. 清理系统日志

(1) 检查日志目录

Linux 日志通常存储在 /var/log 中:

bash

复制

du -h /var/log
(2) 删除过大的日志文件

如果发现某些日志文件过大(如 syslogjournal 文件),可以清理或压缩:

bash

复制

sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/auth.log
(3) 清理 journal 日志

对于使用 systemd 的系统(如 Ubuntu 和 CentOS 7+),日志可能存储在 journal 中:

  • 查看日志占用空间:

    bash

    复制

    journalctl --disk-usage
    
  • 清理日志(保留最近 7 天的日志):

    bash

    复制

    sudo journalctl --vacuum-time=7d
    

2. 清理缓存文件

(1) 清理 apt 缓存(适用于 Debian/Ubuntu)

APT 会缓存已下载的软件包,占用大量空间:

bash

复制

sudo apt-get clean
(2) 清理 yum 缓存(适用于 CentOS/RHEL)

bash

复制

sudo yum clean all
(3) 清理临时文件

临时文件通常存储在 /tmp 目录中,可以安全删除:

bash

复制

sudo rm -rf /tmp/*

3. 删除未使用的旧内核

(1) 列出已安装内核

在 Ubuntu/Debian 系统中,列出所有内核版本:

bash

复制

dpkg --list | grep linux-image
(2) 删除旧内核

保留当前内核和最近的一个版本,其余都可以删除:

bash

复制

sudo apt-get autoremove --purge

对于 CentOS 系统:

bash

复制

sudo yum remove kernel-oldversion

4. 查找和清理无用文件

(1) 清理大文件

使用 find 找到大文件后,确认是否不再需要这些文件,删除它们:

bash

复制

sudo rm -f /path/to/large-file
(2) 清理用户的下载目录

检查 /home 目录下的用户文件:

bash

复制

du -h --max-depth=1 /home

删除不需要的文件或备份到其他存储设备。


5. 卸载不必要的大型软件包

(1) 列出已安装的软件包及其大小

在 Debian/Ubuntu 系统中:

bash

复制

dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -n

在 CentOS/RHEL 系统中:

bash

复制

rpm -qa --qf '%10{SIZE}\t%{NAME}\n' | sort -n
(2) 卸载不需要的软件

例如,卸载某个软件包:

bash

复制

sudo apt-get remove --purge package-name

或:

bash

复制

sudo yum remove package-name

6. 压缩备份文件

如果某些文件需要保留但不常用,可以压缩后存储:

bash

复制

tar -czvf backup.tar.gz /path/to/large-directory

然后将压缩文件移动到其他存储设备或云端。


三、预防磁盘再次占满的策略

  1. 定期监控磁盘使用

    • 使用 cron 定期运行 dfdu,并发送邮件报警:

      bash

      复制

      df -h | mail -s "Disk Usage Report" your-email@example.com
      
  2. 设置磁盘占用警告

    • /etc/fstab 中启用磁盘配额(Quota)功能,限制用户或目录的磁盘使用量。
  3. 使用独立分区管理

    • 将日志目录(/var/log)、临时目录(/tmp)、用户目录(/home)分区分开,避免单个分区写满后影响整个系统。
  4. 扩容磁盘

    • 如果所有清理措施后仍无法满足需求,可以考虑扩展磁盘(如通过云服务商增加硬盘空间)。

四、总结

当 Linux 磁盘满了时,按照以下步骤操作:

  1. 快速排查:使用 dfdu 定位问题分区和目录。
  2. 清理无用文件:删除日志、缓存、临时文件和旧内核。
  3. 优化存储:压缩或转移大文件,卸载不必要的软件。
  4. 长期策略:定期监控磁盘使用,分区独立管理或扩容磁盘。

通过上述方法,您可以快速释放磁盘空间并防止磁盘再次被占满。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/490132.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中科网威-anysec安全网关 arping 远程命令执行漏洞复现(CNVD-2024-46119)

0x01 产品简介 深圳市中科网威科技有限公司成立于深圳市南山科技园信息产业化基地(也有说法称总部位于深圳市福田国际电子商务产业园),是深圳市高新技术企业、双软企业。公司致力于VPN防火墙、流量监控、网络行为管理、ANYSEC安全网关、IT运维设备等前沿网络设备的研发、生…

什么是PCB的CAF效应?

导电阳极丝(CAF)现象及其影响 在高科技电子产品制造中,尤其是在对环境适应性要求极高的汽车电子和军工领域,产品的耐高温和高湿性能显得尤为重要。 随着电子产品向更高集成度发展,电路板上的孔间距不断缩小&#xff…

harbor镜像仓库搭建

Harbor简介 Harbor的发展背景和现状 Harbor项目起始于2014年左右,当时正值容器技术和微服务架构迅速崛起的时期。随着越来越多的企业开始采用容器化部署应用,对于私有镜像管理的需求也日益增长。传统的解决方案要么缺乏必要的企业级特性(如访问控制、安全性和可扩展性),…

【数据结构——查找】顺序查找(头歌实践教学平台习题)【合集】

目录😋 任务描述 相关知识 测试说明 我的通关代码: 测试结果: 任务描述 本关任务:实现顺序查找的算法。 相关知识 为了完成本关任务,你需要掌握:1.根据输入数据建立顺序表,2.顺序表的输出,…

UOB大华银行|校招网申综合能力SHL测评题库英语版本真题分析

大华银行有限公司(大华银行)是亚洲银行业的翘楚,大华银行总部位于新加坡,并在中国、印度尼西亚、马来西亚、泰国及越南设立了全资法人银行,在全球拥有约500 间分行及办事处,分布在亚太、欧洲与北美的19 个国…

[C#与C++交互] 跨进程通信NamedPipes

目录 1、前言 2、什么是命名管道? 3、实现步骤 4、示例代码 4.1 C 服务器代码 4.2 C# 客户端代码 5、运行步骤 6、注意事项 7、应用场景 8、优缺点 9、总结 1、前言 在 C# 和 C 应用程序之间进行数据交换时,命名管道(Named Pipes…

《宇宙机器人》提示错误弹窗“找不到d3dx9_43.dll”是什么原因?“d3dx9_43.dll缺失”怎么解决?

电脑游戏运行时常见问题解析:《宇宙机器人》提示“找不到d3dx9_43.dll”的解决之道 TGA2024落幕,年度最佳游戏——《宇宙机器人》,作为一名在软件开发领域深耕多年的从业者,我深知电脑游戏在运行过程中可能会遇到的各种挑战&…

Hive-4.0.1数据库搭建(可选配置用户名密码远程连接)

1.官网下载tar包上传到服务器并解压&#xff08;我这里解压到了hive目录): 2.进入到conf目录&#xff0c;并复制模板配置文件进行修改&#xff1a; cd /apache-hive-4.0.1-bin/conf cp hive-default.xml.template hive-site.xml3.编写内容如下&#xff1a; <property>&…

计算机内存里面4个字节与float类型数据的转换原理

在计算机科学中&#xff0c;四个字节与float&#xff08;单精度浮点数&#xff09;之间的转换是一种常见的操作。这种转换涉及到数据类型的转换和内存存储的相关知识&#xff0c;其原理主要基于IEEE 754标准。以下是对四个字节和float转换原理的详细解释&#xff1a; 一、基本…

MATLAB 识别色块和数量

文章目录 前言步骤 1: 读取图像步骤 2: 转换为 HSV 颜色空间步骤 3: 定义颜色范围步骤 4: 创建颜色掩码步骤 5: 应用形态学操作&#xff08;可选&#xff09;步骤 6: 标记和显示结果完整代码步骤七 返回色块坐标 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&…

抓包分析DHCP的工作过程

一、DHCP简介 DHCP&#xff08;Dynamic Host Configuration Protocol&#xff09;动态主机配置协议&#xff0c;前身是BOOTP协议。在大型局域网中&#xff0c;需要给很多主机配置地址信息&#xff0c;如果采用传统手工配置&#xff08;累死&#xff09;&#xff0c;效率太低&am…

MUR3060PTR-ASEMI快恢复二极管对管MUR3060PTR

编辑&#xff1a;ll MUR3060PTR-ASEMI快恢复二极管对管MUR3060PTR 型号&#xff1a;MUR3060PTR 品牌&#xff1a;ASEMI 封装&#xff1a;TO-247 正向电流&#xff1a;30A 反向电压&#xff1a;600V 正向压降&#xff1a;0.98V~1.90V 引线数量&#xff1a;3 芯片个数&a…

CSS学习记录13

CSS组合器 组合器是解释选择器之间关系的某种机制。CSS选择器可以包含多个简单选择器。在简单选择器之间&#xff0c;我们可以包含一个组合器。 CSS中有四种不同的组合器&#xff1a; 后代组合器&#xff08;空格&#xff09;子选择器&#xff08;>)相邻兄弟选择器&#…

城市大脑新型智慧城市数据中台建设方案

建设背景与现状 随着城市化进程的加速&#xff0c;城市数据呈现出爆炸式增长&#xff0c;但数据的整合、共享和利用却面临诸多挑战。信息孤岛、数据冗余、管理分散等问题日益突出&#xff0c;制约了智慧城市的发展。为了解决这些问题&#xff0c;构建城市大脑新型智慧城市数据…

LeetCode 热题 100-两数之和(简单)

1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出和为目标值 target 的那两个整数&#xff0c;并返回它们的数组下标。你可以假设每种输入只会对应一个答案&#xff0c;并且你不能使用两次相同的元素。 你可以按任意顺序返回答案。…

【echarts】数据过多时可以左右滑动查看(可鼠标可滚动条)

1. 鼠标左右拖动 在和 series 同级的地方配置 dataZoom&#xff1a; dataZoom: [{type: inside, // inside 鼠标左右拖图表&#xff0c;滚轮缩放&#xff1b; slider 使用滑动条start: 0, // 左边的滑块位置&#xff0c;表示从 0 开始显示end: 60, // 右边的滑块位置&#xf…

将VSCode添加至右键的菜单栏

文章目录 打开注册表编辑器共需要在3处添加&#xff1a;第一处&#xff1a;第二处&#xff1a;第三处&#xff1a;最终效果&#xff1a; 原文链接&#xff1a; https://www.cnblogs.com/alannxu/p/18234323 打开注册表编辑器 1、打开运行界面&#xff1a;WinR 2、在弹出的运行…

【ArcGIS】基于R语言、MaxEnt模型融合技术的物种分布模拟、参数优化方法、结果分析制图与论文写作

第一章、以问题导入的方式&#xff0c;深入掌握原理基础【理论篇】 1、R语言入门&#xff1a; &#xff08;1&#xff09;安装R及集成开发环境&#xff08;IDE&#xff09;&#xff1b;&#xff08;2&#xff09;R语言基础语法与数据结构&#xff0c;包括&#xff1a;程序包安…

下载与使用PCL启动器(2.8.12正式版)

一.下载PCL启动器 PCL启动器下载官网&#xff1a;爱发电 连接创作者与粉丝的会员制平台将创作的自由还给创作者&#xff01;爱发电是让创作者简单地获得稳定收入的粉丝赞助平台。无论你在创作什么&#xff0c;都能在这里获得持续的资金支持&#xff0c;让创作从此更自由。htt…

JVM 栈帧结构详解

在 Java 虚拟机&#xff08;JVM&#xff09;中&#xff0c;栈帧&#xff08;Stack Frame&#xff09;是用于支持方法调用和方法执行的关键数据结构。每个方法从调用开始到执行完成&#xff0c;都对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。本文将详细介绍 JVM 栈帧的结构及…