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

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

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

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

第9课:磁盘管理和使用
加载中
第9课:磁盘管理和使用

第一步:用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.log和error.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/linux%e7%a3%81%e7%9b%98%e6%bb%a1%e4%ba%86%e6%80%8e%e4%b9%88%e6%b8%85%e7%90%86%ef%bc%9f%ef%bc%8c%e6%9c%89%e5%93%aa%e4%ba%9b%e9%87%8a%e6%94%be%e7%a9%ba%e9%97%b4%e6%8a%80%e5%b7%a7/

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

相关推荐

  • 负载均衡好还是集群好?负载均衡和集群有什么区别

    在服务器架构选型与部署的实际场景中,技术团队往往面临一个核心决策:是选择负载均衡方案还是采用服务器集群架构?这并非一个非此即彼的单选题,而是基于业务流量模型、高可用性要求以及成本预算的综合考量,作为长期深耕基础设施运维的技术团队,我们结合最新的硬件配置与2026年度厂商促销活动,对这两种架构模式进行了深度实测与……

    2026年4月5日
    8800
  • Sails.js比Rails更快吗?Node.js MVC框架实战测评

    在Node.js生态中,Sails.js以其鲜明的Rails风格MVC架构脱颖而出,作为全栈框架,它通过自动生成的RESTful API和实时WebSocket支持,显著加速了数据驱动的应用开发,以下深度剖析基于实际生产环境测试:核心架构优势特性实现效果对比传统方案自动API生成模型定义后自动创建CRUD端点……

    2026年2月13日
    16500
  • 国外物联网云计算论文到底是什么,如何撰写高质量论文

    在当前的数字化科研环境中,获取高质量的学术资源对于研究人员和开发者至关重要,针对“国外物联网云计算论文”这一主题,我们不仅需要关注理论前沿,更需要一个高性能、低延迟且网络环境优越的基础设施来支撑数据的获取、模拟与验证,本次测评将深入剖析一款专为科研与高负载应用设计的服务器,通过实际测试数据,验证其在处理物联网大……

    2026年3月21日
    9700
  • RAKsmart硅谷VPS1核1g仅$6.12/月,性价比高吗?国外VPS评测哪家强?

    产品核心参数概览配置项参数详情CPU1 vCore (Intel Xeon Gold)内存1GB DDR4 ECC存储20GB NVMe SSD带宽1Gbps 共享端口流量1000GB/月数据中心美国硅谷网络线路CN2 GIA + AS9929 混合优化虚拟化技术KVM 全虚拟化基础价格$6.12/月 (活动特……

    2026年2月4日
    16000
  • 负载均衡内网到外网怎么配置?内网服务器通过负载均衡对外提供服务的实现方法

    负载均衡内网到外网在企业级网络架构中,内网服务对外暴露的安全性与稳定性始终是运维团队关注的核心问题,传统做法中,直接将内网服务器接入公网存在显著风险:攻击面扩大、DDoS攻击频发、IP暴露导致敏感信息泄露等,而通过负载均衡设备实现内网到外网的安全中转,已成为高可用架构的标准实践,本文基于对主流负载均衡方案的实测……

    服务器测评 2026年4月17日
    6100
  • 海外BGP多线怎么样?AMD EPYC 9004无限流量好用吗?

    在当前企业级计算领域,处理器的架构革新直接关联到业务处理能力的上限,本次测评的对象是一台基于 AMD EPYC 9004 系列处理器的海外BGP多线服务器,该机型主打高性能计算与全球网络互联能力,特别适合对并发处理要求较高以及需要覆盖全球用户的业务场景,以下将从硬件架构、网络质量、流量策略以及2026年最新活动……

    2026年2月26日
    19200
  • Hostpair五折$9.15一年是真的吗,虚拟主机哪家好

    HostPair当前5折活动把基础虚拟主机压到$9.15/年,这个价位在海外虚拟主机里属于明显偏低档,适合个人博客、轻量外贸展示站和Reseller起步用户,但资源限制和续费规则要在下单前看明白,HostPair虚拟主机怎么样?先看适用场景和限制HostPair的定位偏向预算型用户,入门套餐通常只给1个网站、几……

    2026年9月12日
    100
  • ColoCrossing VPS七五折促销,国外VPS便宜划算吗?评测哪家强?

    ColoCrossing 年末促销活动 便宜美国VPS 七五折优惠 – VPS评测 – 国外VPS,国外VPS商家,评测及优惠ColoCrossing 作为知名国外VPS商家,其美国VPS服务以高性价比和稳定性能著称,值此年末促销活动期间,ColoCrossing 推出七五折优惠(25%折扣),为用户提供便宜美……

    2026年2月3日
    16600
  • 中秋VPS优惠哪家好?Kamatera阿姆斯特丹亚洲优化VPS67折仅80元起

    Kamatera 阿姆斯特丹亚洲优化VPS中秋盛惠:专业测评与限时67折对于寻求欧洲与亚洲间高速互联的企业与开发者,Kamatera位于荷兰阿姆斯特丹的亚洲优化VPS节点提供了关键解决方案,该节点专为亚太地区访问进行线路优化,显著降低跨境数据传输延迟,此次中秋佳节,Kamatera推出年度重磅促销:即日起至20……

    2026年2月16日
    22800
  • yourlasthost年付$30值得吗,性价比怎么样

    年付30美元的洛杉矶KVM服务器,真实性能和可用性如何如果你的预算卡在300元以内,还想在洛杉矶拿一台带500G DDoS高防的KVM独立服务器,yourlasthost这款年付$30的机型是当前市面上性价比相当突出的选择,配置是768M内存、20G硬盘,带500G防御,放在同价位里几乎找不到第二家,适合跑轻量……

    2026年9月21日
    100

发表回复

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