ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Linux 磁盘空间不足怎么办?从 df 到日志清理的一套排查方法

Linux 磁盘空间不足怎么办?从 df 到日志清理的一套排查方法 Linux 磁盘空间不足怎么办从 df 到日志清理的一套排查方法最近维护服务器的时候遇到一个比较常见的问题网站运行正常但是后台突然无法上传文件数据库写入也出现异常。登录服务器查看后发现根目录磁盘空间已经接近满了。执行df-h查看磁盘使用情况Filesystem Size Used Avail Use% /dev/vda1 80G 78G 2G 98%很多时候大家第一反应就是删除一些文件但服务器磁盘占用异常并不一定只是文件太多。下面记录一下平时排查磁盘问题的方法。一、使用 du 查找大目录首先查看根目录下面哪些目录占用空间较大du-h--max-depth1/结果可能类似20G /www 15G /var 8G /home然后继续进入占用较大的目录du-h--max-depth1/www逐级排查。如果想快速查看最大的文件du-ah/|sort-rh|head-20可以列出占用空间最大的 20 个文件。二、检查 Linux 日志文件很多服务器磁盘爆满原因都是日志文件长期没有清理。查看日志目录du-sh/var/log/*例如5G /var/log/messages 8G /var/log/nginx如果 Nginx 访问量较大access.log 可能会快速增长。查看ls-lh/var/log/nginx/如果确认是历史日志可以进行压缩或者清理。例如gzipaccess.log或者删除已经不需要的旧日志。三、检查网站缓存文件使用宝塔、WordPress 或其他 Web 程序时经常会产生缓存。例如/www/wwwroot/site/cache /www/wwwroot/site/runtime查看网站目录大小du-sh/www/wwwroot/*如果某个网站目录异常大需要进一步查看du-h--max-depth1网站目录不要直接删除整个网站目录避免误删程序文件。四、查看已经删除但仍占用空间的文件有一种情况比较特殊文件已经删除但是磁盘空间没有释放。原因是程序仍然打开着这个文件。例如lsof|grepdeleted可能看到nginx 1234 root deleted access.log说明 Nginx 仍然占用这个删除的日志文件。这种情况下需要重启对应服务systemctl restart nginx重新查看df-h空间通常会恢复。五、使用 journalctl 清理系统日志systemd 系统日志也可能占用大量空间。查看journalctl --disk-usage例如Archived and active journals take 5G可以限制日志大小journalctl --vacuum-size500M表示只保留 500MB 日志。六、设置自动清理机制服务器长期运行不建议完全依靠人工清理。可以使用logrotate 管理日志cron 定时任务监控磁盘使用率。例如每天检查df-h当磁盘超过 80% 时提前处理。总结Linux 磁盘空间不足时不要直接删除文件。正确排查顺序使用 df 查看哪个分区满使用 du 查找大目录检查日志文件检查缓存目录查看 deleted 文件设置自动清理。服务器运行时间越长磁盘管理越重要。提前做好日志和缓存控制可以避免网站因为磁盘满导致异常。标签Linux、服务器运维、磁盘清理、日志管理
返回列表