Linux磁盘满了怎么清理?,有哪些释放空间技巧

Linux服务器硬盘满了别急着重装或扩容,先用df -h和du -sh逐层定位大文件,优先清理可回收日志和缓存,多数情况能省下一笔扩容费用。
这台跑了两年的轻量应用服务器,系统盘只有40G,昨天下午Nginx突然开始报502,SSH登录后第一眼看到的就是根分区使用率98%,下面把整个处理过程拆成可复用的命令和判断顺序。

Linux磁盘空间满了怎么清理?先定位大文件再动手

很多人一看到磁盘满了就习惯性删文件,结果删了一堆小文件,根分区还是99%,问题不在删得多不多,在于有没有找对地方。

第一步:用df -h确认哪个挂载点满了

登录服务器后先别急着敲删除命令,先看清楚是哪个分区满了:

df -h

输出里重点看Mounted on和Use%两列,常见的是根分区使用率接近100%,也有可能是/home独立分区满了、/var独立分区满了,还有可能是/boot满了导致内核更新失败,挂载点不同,处理路径完全不一样,比如根分区满了不能只盯着/var看,还要查/home/opt/tmp和Docker数据目录。

第二步:用du命令逐层排查大目录

从根目录开始看一级目录占用:

du -sh / 2>/dev/null | sort -rh | head -20

这条命令会按大小倒序显示根目录下一级目录的占用,找到最大的那个目录,比如/var占了28G,就继续往下钻:

du -sh /var/ 2>/dev/null | sort -rh | head -20

再定位到/var/log占15G,就继续看/var/log下的具体文件,逐层排查比随机乱翻高效得多,也更容易发现真正的空间黑洞。

第三步:常见可直接清理的安全目标

定位到大目录后,下面这些目录多数情况下可以优先处理:

  • /tmp/var/tmp:临时文件,重启后一般不会影响业务,但服务器长期不重启会积累大量残留。
  • /var/cache/apt/archives:Debian/Ubuntu系包管理缓存,清理后不影响已安装软件。
  • /var/cache/yum:CentOS/RHEL系包管理缓存,同理安全。
  • /var/log/journal:systemd日志二进制文件,体积可能非常夸张,可以按时间或大小清理。
  • /root/.cache和部分用户目录下的.cache:应用缓存,需要确认后再清。

注意/var/lib/etc/usr/bin/sbin这些目录不要为了腾空间直接删除文件,删错一个可能导致系统起不来或服务异常。

Linux服务器硬盘满了如何处理:日志文件清理实操

日志文件是Linux服务器磁盘占满最常见的原因之一,尤其是跑了一两年的Nginx、MySQL、Java应用,日志体积经常比项目代码大几十倍。

系统日志清理命令

systemd的journal日志有时候比普通文本日志还要占空间,先看看它到底占了多少:

Linux磁盘满了怎么清理?,有哪些释放空间技巧

journalctl --disk-usage

如果显示几个G甚至十几G,可以按保留时间清理,比如只保留最近3天:

journalctl --vacuum-time=3d

也可以按大小限制,比如最多保留500M:

journalctl --vacuum-size=500M

对于普通文本日志,比如/var/log/syslog/var/log/messages,先看文件大小:

ls -lh /var/log/syslog /var/log/messages

确认没有排查需求后,可以用find按修改时间批量删除30天前的日志:

find /var/log -type f -name ".log" -mtime +30 -delete

-delete前建议先去掉-delete跑一遍,看看匹配到哪些文件,避免误删正在写入的日志。

应用日志与历史文件处理

Nginx的access.logerror.log是重点怀疑对象,如果日志文件正在被进程写入,直接用rm删除文件不会立即释放空间,因为进程还持有文件句柄,更安全的方式是清空而不是删除:

 > /var/log/nginx/access.log

这条命令会把文件内容清空,但保留文件inode,进程可以继续写,不会造成日志丢失或服务异常,对于MySQL慢查询日志、Redis日志、Java应用日志,也推荐用同样的方式处理。

如果日志必须保留一段时间,可以配置logrotate按天切割并压缩,后面在长期预防部分会讲到具体做法。

清理后记得释放被删除文件占用的空间

有时候你会发现,明明删了很大的日志文件,df -h显示空间却没变化,这种情况多数是因为进程还占用着已经删除的文件,可以用下面的命令排查:

lsof | grep deleted

输出里会列出被进程打开但已经标记为deleted的文件,找到对应进程后,重启该服务或者让进程重新读取文件,空间才会真正释放,最常见的是忘记重启Nginx或Java应用,导致删除文件后空间依然被占用。

Linux根分区满了怎么办?var和home目录分别排查

根分区满了的时候,有两个目录最容易藏着大文件又容易被忽略:/var/home,处理思路不一样,要分开看。

var目录满了怎么清理:哪些能删哪些不能删

/var目录结构复杂,安全清理的前提是搞清楚每个子目录的用途:

Linux磁盘满了怎么清理?,有哪些释放空间技巧

路径 可否清理 风险说明
/var/log 系统及应用日志 可清理旧日志,保留近期 误删当前日志会丢失排查线索
/var/cache 包管理缓存、应用缓存 可以清理 部分应用缓存清理后会重新生成
/var/tmp 临时文件 可以清理 个别服务可能依赖临时会话
/var/lib 数据库、容器、软件状态数据 不可直接删除 删除会导致数据丢失或服务无法启动
/var/spool 邮件队列、打印队列、cron任务 谨慎处理 业务积压邮件可能仍需投递
/var/www 网站代码 不可随意删除 删除等于删站

/var下清理时,先跑du -sh /var/ 2>/dev/null | sort -rh | head -10看大头,如果/var/lib占大量空间,往往不是日志问题,而是数据库、Docker镜像或容器卷数据,那需要进入对应应用层面清理,而不是直接删文件,业内专家指出,盲目删除/var下的文件是生产环境事故的常见诱因之一。

home目录空间不足常见于备份和上传文件

/home目录主要存放用户数据和上传文件,如果网站支持上传附件、图片或者有备份脚本把压缩包丢在/home下,几个月不清理就会塞满,查找大文件可以用:

find /home -type f -size +500M -exec ls -lh {} ; 2>/dev/null

这条命令会列出/home下所有大于500M的文件,再进一步查看哪些文件很久没被访问过:

find /home -type f -atime +180 -size +200M -exec ls -lh {} ; 2>/dev/null

半年以上没访问过的大文件,多数可以归档到对象存储或者直接删除,前提是确认不是用户核心数据,如果需要保留,可以迁移到挂载的独立数据盘或OSS,成本通常比系统盘扩容低。

用表格对比各目录风险

除了/var/home,根分区下其他目录也需要按风险等级处理:

目录 清理风险 操作建议
/tmp 定期清理或设置定时任务
/var/tmp 同上
/var/log 中低 清理旧日志,配置轮转
/var/cache 可安全清理
/home 中高 确认文件归属再删或迁移
/root 只有管理员能操作,别误删配置
/opt 应用安装目录,确认应用状态
/usr 极高 系统核心文件,不要手动清理

表格对比能让新手快速判断哪些操作是安全的,而不是所有目录都用同一套删除逻辑。

Linux磁盘占满原因排查与长期预防

清理完了不代表不会复发,真正让服务器长期稳定的办法,是找出占满的根本原因,再配置自动轮转和监控。

inode耗尽和block占满要分开看

df -h看的是block占用,也就是文件内容占的磁盘空间,还有另一种情况:空间没满,但不能再创建文件,这时候要查inode:

Linux磁盘满了怎么清理?,有哪些释放空间技巧

df -i

如果IUse%接近100%,说明是小文件太多把inode用光了,常见场景是缓存目录里积累了几十万个小文件,或者邮件队列、session目录异常增长,处理思路完全不同:需要找到目录下文件数量最多的位置:

find / -xdev -type f | cut -d/ -f2 | sort | uniq -c | sort -rn | head -20

再针对文件密度高的目录做清理或迁移,只清block不解决inode耗尽,这是很多新手容易踩的坑。

用find按时间和大小定位文件

除了前面提到的按大小查,还可以按修改时间批量定位长期没动的文件:

find /var -type f -mtime +90 -size +100M -exec ls -lh {} ; 2>/dev/null

这条命令找/var下90天前修改过且超过100M的文件,通常这些文件就是可以归档或删除的候选对象,再结合业务日志保留周期,就能形成一套固定的清理脚本。

部署监控与日志轮转

长期预防最有效的两条路:监控告警和日志轮转。

监控推荐用轻量脚本定时检查磁盘使用率,超过阈值就发通知:

#!/bin/bash
usage=$(df -h / | awk 'NR==2 {print $5}' | sed 's/%//')
if [ "$usage" -gt 85 ]; then
  echo "disk usage above 85%" | mail -s "disk alert" admin@example.com
fi

这个脚本放到crontab每30分钟跑一次,不同云厂商也有自带的磁盘监控告警,控制台里开启即可。

日志轮转用logrotate,大部分发行版自带这个工具,可以在/etc/logrotate.d/下为Nginx、MySQL等应用添加配置,比如给Nginx日志保留14天并压缩:

/var/log/nginx/.log {
    daily
    rotate 14
    compress
    delaycompress
    missingok
    notifempty
    sharedscripts
    postrotate
        nginx -s reload > /dev/null 2>&1
    endscript
}

行业共识认为,日志轮转是服务器长期稳定运行的最低成本方案,配置一次之后,日志就不会再无限增长,磁盘告警会大幅减少。

Linux磁盘空间满了相关问题解答

问:Linux磁盘空间满了是否一定要重装系统?

答:多数情况下不需要重装,先按本文的顺序定位大文件和可清理目录,把日志、缓存、临时文件处理掉,再观察使用率,重装只能解决一时的问题,如果业务数据和应用逻辑没变,过一段时间还会再次占满。

问:df -h显示100%但du找不到大文件是什么原因?

答:通常是文件被进程占用但已经被标记删除,用lsof | grep deleted可以找到这类文件,重启对应服务或进程后,空间会被系统回收,另一个可能原因是inode耗尽而非block耗尽,用df -i确认。

问:Linux服务器硬盘满了扩容贵不贵?

答:云服务器系统盘扩容按容量计费,华北地域和华南地域价格差异不大,一般按每GB每月零点几元收费,先清理再评估扩容需求,多数情况能避免不必要的额外费用。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/671304.html

(0)
Centos如何配置图形界面和VNC,安装方法是什么?
上一篇 2026年9月21日 01:11
hostslayer 6.59美元KVM怎么样,值得买吗?
下一篇 2026年9月21日 01:11

相关推荐

  • 服务器修改IP地址的步骤是什么?,怎么修改IP地址

    修改服务器IP地址不是简单的改个数字,它牵一发而动全身,核心原则是提前规划、充分测试、最小化窗口,跳过任何一步,都可能让服务直接宕机,场景分析:为什么需要修改服务器IP地址修改IP地址通常不是日常运维首选,但有几个场景你不得不面对:机房迁移或更换机柜:新机房的网络段与旧不同,IP必须重新分配,网络架构调整:从单……

    2026年7月24日
    2000
  • h5游戏制作工具怎么用?如何制作简单的h5小游戏

    H5游戏制作工具是降低开发门槛、实现跨平台快速部署的关键技术栈,选择时需综合考量性能、易用性及成本,对于非程序员而言,可视化拖拽类工具是最佳入门路径,在2026年的移动互联网生态中,H5游戏早已突破了早期“加载慢、体验差”的刻板印象,随着WebGL技术的普及和浏览器内核的优化,H5游戏在性能上已能胜任中重度休闲……

    2026年7月5日
    6600
  • 128M内存VZ年付9美元值不值,VPS性能怎么样?

    vpsace的128M内存VZ年付9美元套餐,是预算卡死又想拥有一台海外独立IP用户的入门玩具,适合轻量代理和小型静态站,不适合当主力服务器,vpsace 128M内存VZ套餐核心定位先说配置,128M内存、VZ架构、年付9美元,折算下来每月不到1美元,这个价位在目前VPS市场里属于地板级存在,跟动辄每月几美元……

    2026年9月1日
    300
  • 负载均衡原理介绍是什么,负载均衡原理详解

    负载均衡原理介绍在构建高可用、高性能的分布式服务器架构中,负载均衡(Load Balancing)不仅是流量分发的核心枢纽,更是保障业务连续性的关键防线,对于企业级应用而言,理解其底层运作机制并选择具备先进调度策略的服务器,直接决定了系统的响应速度与稳定性,本次测评将深入剖析主流负载均衡方案的技术细节,并结合……

    服务器测评 2026年4月19日
    5700
  • 如何有效分析网站的外链质量?,有哪些方法?

    分析网站外链的核心在于通过系统化方法评估其质量对搜索排名的影响,而非仅看数量,如何分析网站的外链质量分析外链质量的第一步是收集完整数据,使用工具导出所有外链,包括域名、链接、锚文本等,域名权威性是首要指标,高权重域名能传递更多信任度,检查链接上下文是否相关,不相关链接价值有限,外链分析工具的选择优先选择能提供历……

    2026年8月2日
    900
  • BWHVPS DC9套餐性价比高?768MB内存1.5Gbps端口年付38美元值得入手吗?

    BWHVPS近期在DC9数据中心推出了新款VPS套餐,针对轻量级应用与入门用户进行了优化配置,该套餐以年付38美元的价格提供了768MB内存、15GB SSD存储及1.5Gbps网络端口,在性价比方面表现突出,以下将从性能、网络、适用场景及优惠详情等方面展开详细测评,硬件配置与性能表现该套餐基于KVM虚拟化技术……

    2026年2月4日
    14300
  • 服务器配置需要显示器吗?怎么选显示器?

    服务器配置要不要显示器?直接说结论:绝大多数情况下,服务器配置不需要独立显示器,但如果你是首次接触服务器,或者在机房环境里进行故障排查,临时接入显示器会更顺手,之后可以拔掉交给远程管理,为什么服务器配置不需要显示器远程管理是主流服务器一旦部署完成,日常操作全部通过网络完成,SSH命令行、RDP远程桌面、Web管……

    2026年7月31日
    1800
  • 容器化部署WordPress性能比传统部署快吗,WordPress容器化部署教程

    在多数常规场景下,容器化部署WordPress的性能并不比传统部署快,甚至在I/O密集型操作中可能略慢,但其核心价值在于部署效率、资源隔离与弹性伸缩能力,而非单纯的单点响应速度,很多人存在一个误区,认为把WordPress装进Docker容器里,就像给汽车换了涡轮增压引擎,网站打开速度会瞬间起飞,事实并非如此……

    2026年5月26日
    4400
  • Hadoop数据库有什么特点?Hadoop与MySQL区别

    Hadoop并非传统关系型数据库,而是基于分布式文件系统(HDFS)和MapReduce计算框架的大数据底层架构,其核心优势在于海量数据的低成本存储与非结构化数据处理能力,适用于离线分析而非实时事务处理,在2026年的技术语境下,谈论Hadoop往往意味着我们在讨论企业数据湖的基石,它不像MySQL那样处理单条……

    2026年7月6日
    18900
  • 服务器的主要参数你真的了解吗?,哪个最重要

    服务器的主要参数包括CPU、内存、硬盘、带宽和扩展性,它们共同决定了服务器的适用场景和性价比,合理配置比单纯堆硬件更重要,服务器参数怎么选:CPU核心与主频的平衡核心数决定并发处理能力CPU是服务器的计算核心,核心数直接影响同时处理任务的能力,对于Web服务器、反向代理或数据库这类需要并行处理大量请求的场景,更……

    2026年8月8日
    500

发表回复

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