当前位置: 首页 > news >正文

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. 长期策略:定期监控磁盘使用,分区独立管理或扩容磁盘。

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

相关文章:

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

当 Linux 磁盘满了,会导致系统无法正常运行,比如无法写入文件、服务停止、甚至系统崩溃。因此,快速排查并清理磁盘空间是非常重要的。以下是详细的排查和解决步骤: 一、快速定位磁盘占用原因 1. 检查磁盘使用情况 使用 df 命令查…...

【专题】2024年中国新能源汽车用车研究报告汇总PDF洞察(附原数据表)

原文链接: https://tecdat.cn/?p38564 本年度,国家及地方政府持续发力,推出诸多政策组合拳,全力推动汽车产业向更高质量转型升级,积极鼓励消费升级,并大力推行以旧换新等惠民生、促发展举措。尤为引人注目…...

数据结构之链表笔试题详解

一:移除链表元素 我们很容易就可以想到一个解决方案:再创建一个链表,把不是val的结点拿过来尾插。 这样确实可以但是,我们每次尾插都需要遍历一遍整个链表,这样时间复杂度就变成了O(n^2), 因此我们不妨设…...

结构化的Prompt

资源库: AI 提示词-WayToAGI精选高效的AI提示词库,助力创作者和开发者解锁人工智能的潜力。通过我们的提示词和策略,优化您的AI工具使用效率,激发创意思维,提升产出质量。https://www.waytoagi.com/prompts?tag6 结构…...

【数字化】华为数字化转型架构蓝图

导读:华为的数字化转型规划团队在2016年年底基于对愿景的系统诠释,整合出了数字化转型架构蓝图。该蓝图共分为5层,旨在通过数字化转型实现客户交互方式的转变、作战方式的转变、公司各平台业务能力的数字化、服务化以及运营模式的转变。 目录…...

最新全开源IM即时通讯系统源码(PC+WEB+IOS+Android)部署指南

全开源IM(即时通讯)系统源码部署是一个复杂但系统的过程,涉及多个组件和步骤。以下是一个详细的部署指南,旨在帮助开发者或系统管理员成功部署一个全开源的IM系统,如OpenIM。      IM即时通讯系统源码准备工作   …...

go 跨平台打包

GOARCH‌是Go语言中的一个环境变量,用于指定目标平台的底层架构。在Go的交叉编译过程中,‌GOARCH‌决定了编译出的二进制文件将在哪种硬件架构上运行。 GOARCH的常见值 ‌amd64‌:64位 x86 架构‌386‌:32位 x86 架构‌arm‌&am…...

C++ 给定字符串,然后给出开始要取的位置,返回取到的信息

3 happy new year 7 year 1 new 4 new year year error input #include <stdio.h> #include <string.h> void strmcpy(char* s, char* t, int m); int main() {int repeat, m;char t[1000], s[1000];scanf("%d", &repeat);getchar(); //吸收换行符in…...

【树莓派4B】MindSpore lite 部署demo

一个demo&#xff0c;mindspore lite 部署在树莓派4B ubuntu22.04中&#xff0c;为后续操作开个门&#xff01; 环境 开发环境&#xff1a;wsl-ubuntu22.04分发版部署环境&#xff1a;树莓派4B&#xff0c;操作系统为ubuntu22.04mindspore lite版本&#xff1a;mindspore-li…...

Idea汉化插件Datagrip汉化插件

汉化插件 ‍ ‍ Chinese (Simplified) Language Pack / 中文语言包 ‍ 插件地址 ‍ 安装完了之后,如果还不是中文的怎么办 ‍ 需要手动设置 Seetings -> Appearance & Behavior -> System Settings -> Language and Region -> Language 修改为 [ Chi…...

精彩回顾|Cocos开发者沙龙长沙站

长沙-不一样 Cocos 开发者沙龙长沙站&#xff0c;完全超出了我们的预期&#xff0c;一开始还担心没有太多人报名。最后发现&#xff0c;全场爆满&#xff0c;座无虚席。 <<< 左右滑动见更多 >>> 许多小伙伴曾反馈过&#xff0c;在以往的开发者沙龙回顾文章中…...

算法日记 49 day 图论(A*算法)

这算是算法的最后一篇了&#xff0c;原本A*之前还有一些相关的最短路径算法的&#xff0c;比如dijkstra的堆优化&#xff0c;SPFA等等&#xff0c;但是有些我没看懂&#xff0c;就不写了&#xff0c;用A*做个结尾。 题目&#xff1a;骑士的攻击 127. 骑士的攻击 (kamacoder.co…...

服务器批量清理redis keys,无法适用客户端必须直连的情况

在 Redis 中&#xff0c;批量清理指定模式的键&#xff08;例如 memberCardData:*&#xff09;可以通过多种方法来实现。需要注意的是&#xff0c;Redis 的命令执行是单线程的&#xff0c;因此对大量键进行操作时可能会阻塞服务器。以下是几种常见的方法&#xff1a; shell K…...

Grafana配置告警规则推送企微机器人服务器资源告警

前提 已经部署Grafana&#xff0c;并且dashboard接入数据 大屏编号地址&#xff1a;Node Exporter Full | Grafana Labs 创建企微机器人 备注&#xff1a;群里若有第三方外部人员不能创建 机器人创建完成&#xff0c;记录下来Webhook地址 Grafana配置告警消息模板 {{ define &…...

数字货币金融研究,深度学习虚拟币价格预测 数据集 市值top20 (2014年—2024年)

比特币&#xff0c;以太坊&#xff0c;狗狗币&#xff0c;屎币&#xff0c;模因币 声明 此数据集的目的是 用于数字货币金融研究&#xff0c;深度学习虚拟币价格预测 1、数据集 2014年——2024年 市值top20 比特币&#xff0c;以太坊&#xff0c;屎币&#xff0c;狗狗币交易…...

druid.properties图标是齿轮

一、问题 在IDEA中&#xff0c; druid.properties图标是齿轮 二、原因 2023版本开始&#xff0c;IDEA新的UI的问题 三、解决方法 1、点击右上角的齿轮图标 2、点击Settings 3、Appearance & Behavior---->New UI---->取消勾选“Enable new UI”---->右下角OK 4…...

【图像处理】利用numpy、opencv、python实现车牌检测

| 利用opencv实现车牌检测 整体流程涉及5个部分 图像通道转换对比度增强边缘连接二值化边界区域裁剪 图像通道转换 将RGB图像转换为HSV图像&#xff0c;仅保留V通道。V通道表示颜色的明暗&#xff0c;常用于图像对比度拉伸、直方图均衡化等流程。 原图像&#xff1a; V通…...

ModuleNotFoundError: No module named ‘torchvision.transforms.functional_tensor‘

问题&#xff1a; 运行代码时&#xff0c;报错&#xff1a; … File “/home/xzy/anaconda3/envs/groundinggpt/lib/python3.10/site-packages/pytorchvideo/transforms/augmix.py”, line 6, in from pytorchvideo.transforms.augmentations import ( File “/home/xzy/anac…...

Android无障碍服务监听实现自动点击按钮

原理&#xff1a; 通过监听窗口改变事件&#xff0c;监听目标应用&#xff0c;通过视图ID&#xff08;或文本、或描述、或其他如坐标之类的&#xff09;找到目标视图&#xff0c;使用无障碍动作点击方法点击它 无障碍服务实现&#xff1a; 1、写一个自己的无障碍服务继承Acc…...

Deveco Studio首次编译项目初始化失败

编译项目失败 Ohpm install失败的时候重新使用管理者打开程序 build init 初始化失败遇到了以下报错信息 Installing pnpm8.13.1... npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/pnpm failed, r…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...

vue3 daterange正则踩坑

<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...

高防服务器价格高原因分析

高防服务器的价格较高&#xff0c;主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因&#xff1a; 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器&#xff0c;因此…...

2025-05-08-deepseek本地化部署

title: 2025-05-08-deepseek 本地化部署 tags: 深度学习 程序开发 2025-05-08-deepseek 本地化部署 参考博客 本地部署 DeepSeek&#xff1a;小白也能轻松搞定&#xff01; 如何给本地部署的 DeepSeek 投喂数据&#xff0c;让他更懂你 [实验目的]&#xff1a;理解系统架构与原…...