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

相关推荐

  • 如何在Win7系统下详细安装Linux系统的操作步骤呢?

    在Windows 7系统下安装Linux是一个常见的系统配置需求,无论是为了体验开源系统、开发环境搭建还是数据安全,都需要经过充分的准备和细致的操作,以下将详细介绍整个过程,涵盖前期准备、分区规划、安装步骤及后续问题排查,帮助用户顺利完成Linux系统的部署,安装前的准备工作在开始安装前,充分的准备工作能有效避……

    2025年9月29日
    7600
  • 网卡不见了?试试ip link命令

    在Linux系统中,MAC地址(Media Access Control Address)是网络接口的唯一硬件标识符,由48位二进制数组成,通常表示为12位十六进制数(如00:1A:2B:3C:4D:5E),它用于在局域网中精确识别设备,对网络配置、故障排查、安全策略(如MAC地址过滤)至关重要,以下是在RHE……

    2025年7月29日
    7900
  • Linux系统如何搭建论坛?

    在Linux操作系统上搭建论坛是许多企业和个人用户的选择,因其稳定性、安全性和开源特性,本文以Ubuntu 20.04 LTS为例,结合Nginx、MariaDB、PHP及Discuz!论坛软件,详细介绍完整搭建流程,涵盖环境准备、软件安装、配置优化及安全设置,环境准备搭建论坛前需确保服务器满足基本要求:CPU……

    2025年9月28日
    7100
  • mv命令怎么用?

    mv命令用于移动或重命名文件/目录,将源文件或目录移动到目标位置,若目标位置与源在同一目录且名称不同则实现重命名,移动会覆盖已存在的同名目标文件。

    2025年7月12日
    9400
  • Linux下如何查看内存的使用情况?

    在Linux系统中,内存管理是系统性能优化的核心环节,准确查看内存使用情况有助于诊断性能瓶颈、合理分配资源,Linux内存主要分为物理内存(RAM)和虚拟内存(Swap),其中物理内存是系统直接使用的内存,Swap则是硬盘上作为内存扩展的空间,本文将详细介绍Linux下查看内存使用的多种命令及其使用场景,帮助用……

    2025年9月29日
    7600

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信