解决宝塔面板提示No space left on device且无法进入面板管理

如果我们有在使用云服务器的时候肯定会有遇到各种问题,比如今天上午老蒋再次遇到一个网友宝塔面板无法进入客户端的问题。且在检查服务器远程的时候有看到提示"No space left on device",这个问题其实也是比较普遍的,包括我们在使用其他WEB环境也都有遇到过,就是磁盘满导致的。

老蒋看到他选择的一家云服务器商是50GB磁盘,但是实际上系统盘是10GB,挂载盘是40GB,只不过他开始没有挂载,而直接就使用到10GB系统盘,40GB挂载盘没有用,所以磁盘很容易满的,系统就有好几个GB存储,然后他网站都是图片。遇到这个问题我们就解决吧。

第一、清理部分文件让其恢复

这个部分我们可以清理一些没用的文件,比如日志缓存等,来让网站可以正常访问。

1、清理日志

cd /www/server/panel && python tools.pyc clear

2、清理回收站

rm -rf /www/Recycle_bin/*

3、清理数据库日志

    /etc/init.d/mysqld stop
    rm -f /www/server/data/ib_logfile*
    rm -f /www/server/data/mysql-bin.*
    /etc/init.d/mysqld start

这个时候我们可以看到服务器可以腾出2个GB出来,我们重启面板后就可以正常进入面板和网站。于是我让他备份数据到本地,后面需要重新挂载目录。

第二、检查是否有大文件删除

老蒋在帮他备份网站的时候发现他网站其实也就2GB左右,那肯定是还有大文件没有删除。

    #当目录下的大于1G、100MB、10MB的文件
    find . -type f -size +1024M
    find . -type f -size +100M
    find . -type f -size +10M

我们可以用到命令检查是否有无用大文件。

我们需要检查是否有大文件然后删除。

    sudo du -s * | sort -nr | head #显示前10个占用空间最大的文件或目录 
    dudo du -hm --max-depth=2 | sort -nr | head -12 #显示前12个占用空间大的目录(包括二级目录)

或者用这个命令查看文件筛选出来。

第三、查看inode占用情况

其实有些时候不是磁盘占满,而是inode占满。

    #当前各大文件夹占用inode情况
    for i in /var/*; do echo $i; find $i |wc -l; done
    #排序
    sudo find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n

然后我们用命令查看所在目录。

一般来说是内置的邮件导致inode占满。

apt-get remove sendmail*
yum remove sendmail
或者
yum remove postfix
sudo apt-get remove postfix
sudo apt-get remove --auto-remove postfix

理论上inode一般来说是用不完的,除非是程序产生大量的日志,如果是/var/spool/postfix/maildrop/ 中有大量的文件,而且我们还在使用postfix的话,可以确定是因为postfix运行不正常导致的。当然如果sendmail或者postfix正常运行,则会在/var/mail目录下也会堆积大量的邮件。

我们可以关停这个功能。

这样,通过上面几个办法可以检查和解决No space left on device磁盘问题。

本文出处:老蒋部落 » 解决宝塔面板提示No space left on device且无法进入面板管理 | 欢迎分享( 公众号:老蒋朋友圈 )

公众号 「老蒋朋友圈」获取站长新知 / 加QQ群 【1012423279】获取商家优惠推送