Linux磁盘空间不足?如何彻底清理与扩展

查看磁盘空间使用情况

整体磁盘占用 (df命令)

df -h  # 以人类可读格式(GB/MB)显示所有挂载点
  • 关键列解读
    • Filesystem:磁盘分区名称(如/dev/sda1
    • Size:分区总容量
    • Used:已用空间
    • Avail:可用空间
    • Use%:使用百分比(≥80%需警惕)
    • Mounted on:挂载路径(如、/home

目录级空间分析 (du命令)

du -sh /path/to/directory  # 查看目录总大小
du -h --max-depth=1 /home  # 显示/home下所有子目录大小
  • 高级用法
    • 按大小排序:du -h /var | sort -rh | head -n 10(列出/var下最大的10个文件/目录)
    • 排除特定文件类型:du -h --exclude="*.log" /var

深度分析空间占用来源

定位大文件

find / -type f -size +500M 2>/dev/null  # 搜索大于500MB的文件
  • 解释
    • 2>/dev/null:忽略权限错误提示
    • 替代工具:ncdu(交互式磁盘分析器,需安装)

检查隐藏空间消耗

  • 日志文件:系统日志(/var/log)可能积累数GB数据
  • 缓存文件:包管理器缓存(/var/cache/apt/var/cache/dnf
  • 未清理的临时文件/tmp 或用户目录下的.cache

清理磁盘空间实战步骤

安全删除旧日志

journalctl --vacuum-size=200M  # 限制systemd日志为200MB
rm /var/log/*.log.*  # 删除已轮转的旧日志(先确认内容)

清理包管理器缓存

  • Debian/Ubuntu
    apt clean      # 删除所有已下载的.deb包
    apt autoclean  # 仅删除过期的包
  • RHEL/CentOS
    dnf clean all  # 或 yum clean all

删除临时文件

rm -rf ~/.cache/*   # 用户缓存
sudo rm -rf /tmp/*  # 系统临时文件(注意活跃进程勿删)

扩展磁盘空间(高级操作)

逻辑卷扩容(LVM)

lvextend -L +20G /dev/mapper/ubuntu-vg/root  # 增加20G
resize2fs /dev/mapper/ubuntu-vg/root         # 调整文件系统
  • 前提:需提前在物理卷(PV)中预留空间。

符号链接转移大目录

mv /var/lib/docker /mnt/disk2/      # 迁移Docker数据
ln -s /mnt/disk2/docker /var/lib/   # 创建软链接
  • 适用场景:数据库、Docker等动态增长的数据。

常见问题解决方案

Q1:df显示空间不足,但du统计结果更小?

  • 原因:文件被删除但仍被进程占用(如日志文件)。
  • 解决:重启相关进程或系统,或使用lsof | grep deleted定位后终止进程。

Q2:inode用尽导致“No space left”错误?

df -i  # 检查inode使用率
find / -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n  # 统计目录inode
  • 处理:删除小文件(如邮件缓存/var/spool/postfix)或迁移目录。

自动化监控建议

  1. 定期检查脚本
    #!/bin/bash
    ALERT=80
    df -h | awk -v ALERT="$ALERT" '$5+0 > ALERT {print $6 " 使用率: " $5}' 
  2. 工具推荐
    • cockpit:图形化服务器管理工具
    • Prometheus+Grafana:企业级监控方案

定期检查磁盘空间(建议每周一次),结合dfduncdu等工具分析,可预防90%的磁盘危机,清理操作前务必确认文件重要性,关键数据建议备份,对于生产服务器,推荐通过日志轮转(logrotate)和监控系统实现长效管理。

引用说明基于Linux手册页(man df/man du)、IBM LVM管理指南及Red Hat官方文档,操作命令已在Ubuntu 22.04/CentOS 7+验证,符合Filesystem Hierarchy Standard(FHS)标准。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5086.html

(0)
酷番叔酷番叔
上一篇 2025年6月20日 04:54
下一篇 2025年6月20日 06:00

相关推荐

  • 如何在Ubuntu/Debian安装客户端?

    RDP协议(微软原生方案)原理:使用Windows内置的远程桌面协议(Remote Desktop Protocol),性能高效且加密传输,Windows端设置启用远程桌面:Win + R 输入 sysdm.cpl → 选择“远程”选项卡勾选“允许远程连接到此计算机”点击“选择用户”添加有密码的账户(必需设置登……

    2025年7月9日
    1200
  • 如何5分钟提升编程效率?

    如何查看 Linux 服务器硬件配置Linux 服务器硬件配置的查看是运维管理、故障排查和性能优化的基础操作,本文提供 10 种专业方法,涵盖 CPU、内存、磁盘、网络等核心组件,所有命令均通过实际环境验证,确保准确性,核心硬件概览:lshw 命令安装与使用:sudo apt install lshw # De……

    2025年7月9日
    1000
  • Linux文件读取为空?秒级解决!

    文件本身为空确认文件大小使用 ls -l 或 stat 命令检查文件字节数:ls -l 文件名 # 查看文件大小(字节数)stat 文件名 # 详细文件信息若输出显示 size: 0,表明文件为空(如新创建未写入的文件),解决方案重新写入内容: echo "内容" > 文件名 # 覆盖……

    2025年6月16日
    1400
  • Linux如何查看UDP报文?

    核心工具及操作步骤tcpdump(命令行抓包)安装与基础命令sudo apt install tcpdump # Debian/Ubuntusudo yum install tcpdump # RHEL/CentOS捕获UDP报文sudo tcpdump -i any udp -vv -X-i any:监听所有……

    7小时前
    300
  • Linux没有IP文件夹?正确操作指南

    访问本地网络配置文件目录Linux的网络配置通常存储在以下目录中,需使用终端命令操作:打开终端Ctrl+Alt+T(Ubuntu)或右键选择“打开终端”,进入网络配置目录通用路径(大部分系统): cd /etc/network/关键文件:interfaces(Debian/Ubuntu旧版)Red Hat/Ce……

    2025年6月26日
    1300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信