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/article/671304.html

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

相关推荐

  • 西安机房扩容后WAF防护有优惠?服务器托管安全升级线路折扣

    Psychz Networks在亚洲市场的持续投入再次迎来重要进展,其位于中国西安的核心数据中心已完成战略性扩容升级,本次升级不仅显著提升了基础资源容量,更关键的是引入了集成式Web应用防火墙(WAF)防护线路,为面向中国大陆及亚太地区业务的企业用户,提供了更强大、更安全的服务器租用解决方案,结合极具吸引力的1……

    服务器测评 2026年2月16日
    16460
  • Rackburst英国VPS5.4美元值吗,VPS哪家好

    Rackburst 5.4美元月付英国VPS,512M内存配6G SSD,这个配置放在2026年的市场里属于典型的小鸡型入门机,结论先行:适合建个人博客、跑轻量爬虫、做网络代理测试,别指望它扛住任何生产级流量,但作为一台英国落地机,450G流量和30G备份空间在同价位里算实在,Rackburst 5.4美元月付……

    2026年9月10日
    200
  • 负载均衡双十二活动,负载均衡双十二活动怎么买,负载均衡双十二活动价格

    负载均衡双十二活动在 2026 年双十二大促期间,随着企业数字化转型的深入,高可用性与弹性扩展能力已成为衡量服务器性能的核心指标,面对流量洪峰,传统的单机部署已难以支撑业务连续性,而负载均衡(Load Balancing)技术正是解决这一痛点的基石,本次深度测评将聚焦于主流云服务商在双十二期间推出的负载均衡解决……

    服务器测评 2026年4月19日
    4200
  • G口服务器1G独享带宽能跑多少并发?服务器带宽与并发连接数关系

    G口服务器1G独享带宽在理想状态下理论峰值并发可达数万,但实际业务场景中,受限于HTTP协议开销、服务器CPU性能及业务逻辑复杂度,Web服务通常稳定在1000-3000 QPS,静态资源分发可达10000+ QPS,带宽只是高速公路的宽度,真正决定车流速度的是车辆大小、收费站效率以及路况,很多站长在选购G口服……

    2026年5月26日
    5000
  • Ansible无代理设计是什么?配置管理工具测评解析

    Ansible作为Red Hat旗下的开源配置管理工具,凭借无代理架构和声明式语法,已成为企业级IT自动化的重要解决方案,本次测试基于Ansible Core 2.15环境,在混合云架构(AWS EC2 + 本地KVM集群)中验证其关键性能,技术架构深度解析无代理工作模型# 拓扑验证Playbook示例- na……

    2026年2月14日
    15700
  • 负载均衡小结,负载均衡原理是什么?

    在服务器架构设计中,负载均衡能力直接决定了业务的高可用性与并发处理上限,本次测评基于真实生产环境模拟,对目标服务器集群的负载均衡性能进行了深度压力测试,旨在为技术选型提供数据支撑,测评涵盖了四层(TCP/UDP)与七层(HTTP/HTTPS)转发效率、会话保持稳定性、健康检查机制以及高并发下的资源消耗情况,我们……

    2026年4月1日
    10000
  • 服务器端口转发如何配置,具体操作步骤有哪些?

    配置服务器端口转发,核心在于理解数据包流向并选用合适工具设置规则,常用方法包括iptables、firewalld、rinetd和netsh portproxy,配置前必须确认网络连通性与防火墙策略,服务器端口转发怎么设置:核心原理与准备工作端口转发本质是网络地址转换(NAT)的一种应用,将发往某个IP和端口的……

    2026年8月2日
    500
  • 负载均衡初体验怎么入门?负载均衡入门指南

    【负载均衡初体验】近期对阿里云、腾讯云、华为云三家主流公有云厂商的负载均衡服务进行了系统性实测,重点考察高并发场景下的稳定性、配置灵活性及运维友好度,测试环境统一采用4核8G规格的ECS实例作为后端节点,前端模拟5000并发用户,持续压测30分钟,使用JMeter 5.5生成HTTP GET请求,目标URL为静……

    服务器测评 2026年4月17日
    5700
  • ixwebhosting情人节半价优惠怎么抢,是真的吗?

    ixwebhosting情人节半价特惠目前正在生效,海外虚拟主机年付价格打到五折,如果你在找稳定便宜的外贸建站空间,这次促销值得直接入手,ixwebhosting情人节半价活动到底怎么参加每年二月前后,ixwebhosting都会放出一波情人节专属优惠,2026年的活动规则和往年类似,核心就是新用户年付方案直接……

    2026年8月30日
    200
  • 保加利亚VPS怎么样?海外BGP混合线路推荐

    本次测评针对保加利亚数据中心推出的海外BGP混合线路VPS进行深度实测,重点考察其NVMe SSD存储性能、网络路由质量以及流量无封顶策略的实际表现,保加利亚作为东南欧的重要网络节点,具备连接欧亚的地理优势,以下数据基于真实服务器环境测试得出, 测评环境与基础配置测试服务器位于保加利亚索菲亚数据中心,配置如下表……

    2026年3月10日
    12000

发表回复

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