
「网站突然打不开」「数据库报磁盘已满」「日志疯狂报错」,遇到这几个症状,八成是磁盘满了。磁盘满是很常见的服务器故障,但好排查也好解决,别慌,按下面的步骤来。
第一步,先确认是不是磁盘满。登录服务器跑 df -h,看根目录和挂载盘的Use%。超过90%就要警惕,98%以上基本就写不进文件了,网站、数据库、邮件都可能罢工。
第二步,定位是什么占的空间。跑 du -sh /* 看根目录下每个目录多大,一层层往下钻。常见的大户是:日志文件(nginx、php-fpm、mysql的log)、备份文件、网站上传目录、临时文件、还有被攻击写入的恶意文件。
第三步,分清「能删」和「不能删」。日志能清理能轮转,但别直接rm(可能正被进程占用)。正确做法是清空:truncate -s 0 /var/log/nginx/access.log。备份文件确认没用了再删,或者转移到别的盘或对象存储。数据库文件别手贱删,那是要命的。
第四步,处理常见元凶。nginx日志天天涨,关掉access log或加日志轮转(logrotate);php-fpm慢日志和错误日志设个最大大小;mysql的binlog会无限增长,配置里设 expire_logs_days=7 自动清理;上传目录里堆积的临时图片定期清。
第五步,治本。日志加轮转、监控磁盘使用率(到85%就告警)、把大文件目录(图片、备份)迁移到数据盘或对象存储。我自己给客户的服务器都加了cron脚本,每天检查磁盘,超过阈值自动清理老日志,再没出过磁盘满的事。
最后,如果是被黑导致磁盘满(常见是挖矿程序疯狂写日志),先把进程kill、清除恶意文件、改密码,再谈清理。处理完顺手把SSH登录限制、端口白名单做了,防止二次入侵。
还木有评论哦,快来抢沙发吧~