Linux服务器磁盘空间占满的原因以及检查解决办法

我们一般选择的服务器系统盘默认会自带20GB、30GB容量大小,正常我们建站使用肯定是足够的,除非我们真的网站项目是有大量的图片、视频或者附件资源才会不够用。老蒋在给网友解决服务器问题的时候,如果出现网站无法连接等问题,我也会习惯的先检查磁盘是否还有空间,有些时候确实磁盘已经被占满。

那到底是什么问题导致磁盘空间占满呢?大部分的问题可能是因为WEB系统自带网站日志且日志没有定期的清理,导致磁盘被日志占满,这个是有很多存在的原因的。比如我们网站出现攻击产生大量的日志,或者是我们内部出现故障生成日志,当然也包括日志文件定期没有清理。一般我们常用的服务器系统自带日志会保留一周。

之前老蒋也遇到一个问题导致的磁盘短期内占满,是因为使用的WordPress一款地图插件出现漏洞问题可能和哪个文件冲突,导致产生大量的文件占满资源,于是我卸载插件即可解决。还有一个可能是inode节点占满导致的,那这些问题的出现我们如何去检查和处理呢?

第一、查看网站日志

如果我们磁盘占满,先检查当前网站和服务器日志是否占用较大的空间,如果是那就删除后重启WEB生成日志,至少有一个缓冲的机会,在期间我们可以寻找更好的解决办法。比如我们定期设置日志的删除。以及我们需要检查短期内生成这么多日志是什么问题导致的。

第二、删除无用文件腾出临时空间

如果我们网站突然因为磁盘占满问题导致无法访问,我们可以先删除无用的文件。比如我经常看到有些网友备份的网站还是丢在服务器中,这样也就慢慢的增加服务器的磁盘大小。我们可以定期的删除或者下载到本地来解决这些问题。如果确实是因为项目比较大,我们则需要考虑新增扩展磁盘。比如挂载盘可以参考:

1、腾讯云服务器系统盘扩容 增加挂载盘分区扩容磁盘

2、实战记录阿里云服务器不关机扩展系统盘容量/磁盘扩容

第三、查看大文件排查问题

基本上几个大文件我们是可以看到的,但是有些时候文件比较多需要排查。

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服务器磁盘空间占满的原因以及检查解决办法 | 欢迎分享( 公众号:站长事儿 )