我们一般选择的服务器系统盘默认会自带20GB、30GB容量大小,正常我们建站使用肯定是足够的,除非我们真的网站项目是有大量的图片、视频或者附件资源才会不够用。老蒋在给网友解决服务器问题的时候,如果出现网站无法连接等问题,我也会习惯的先检查磁盘是否还有空间,有些时候确实磁盘已经被占满。
那到底是什么问题导致磁盘空间占满呢?大部分的问题可能是因为WEB系统自带网站日志且日志没有定期的清理,导致磁盘被日志占满,这个是有很多存在的原因的。比如我们网站出现攻击产生大量的日志,或者是我们内部出现故障生成日志,当然也包括日志文件定期没有清理。一般我们常用的服务器系统自带日志会保留一周。
之前老蒋也遇到一个问题导致的磁盘短期内占满,是因为使用的WordPress一款地图插件出现漏洞问题可能和哪个文件冲突,导致产生大量的文件占满资源,于是我卸载插件即可解决。还有一个可能是inode节点占满导致的,那这些问题的出现我们如何去检查和处理呢?
第一、查看网站日志
如果我们磁盘占满,先检查当前网站和服务器日志是否占用较大的空间,如果是那就删除后重启WEB生成日志,至少有一个缓冲的机会,在期间我们可以寻找更好的解决办法。比如我们定期设置日志的删除。以及我们需要检查短期内生成这么多日志是什么问题导致的。
第二、删除无用文件腾出临时空间
如果我们网站突然因为磁盘占满问题导致无法访问,我们可以先删除无用的文件。比如我经常看到有些网友备份的网站还是丢在服务器中,这样也就慢慢的增加服务器的磁盘大小。我们可以定期的删除或者下载到本地来解决这些问题。如果确实是因为项目比较大,我们则需要考虑新增扩展磁盘。比如挂载盘可以参考:
第三、查看大文件排查问题
基本上几个大文件我们是可以看到的,但是有些时候文件比较多需要排查。
find . -type f -size +1024M
比如我们可以寻找当前目录中大于1G的文件,然后再去看是什么文件。大小可以自己设置。
find -type f | xargs -I{} du -sk "{}" | sort -rn | head
查看前十个大文件。
du -sk * | sort -rn | head
查看当前占用前十的文件。
第四、查看inode占用情况
df -ia
查看inode节点占用情况。
比如有些网友会出现"No space left on device"的问题,可能是因为inode节点占满导致的,这个是因为sendmail或者postfix邮件问题导致的。于是我们可以看到"/var/spool/mqueue"和"/var/spool/clientmqueue"占满内容,于是需要清理。
最为彻底的清理办法是不在用sendmail或者postfix邮件的时候将这个软件都清理移除。
本文出处:老蒋部落 » Linux服务器磁盘空间占满的原因以及检查解决办法 | 欢迎分享( 公众号:老蒋朋友圈 )