前段时间发现自己杭州服务器的几个网站都莫名出现 No space left on device 警告,但是由于当时网站还是可以访问就没有太在意。再过了一段时间后发现网站直接无法访问了,查看了一下Nginx,MySQL服务发现 已经停止运行了,想手动启动提示空间不足。于是用df -h命令查看了一下磁盘使用情况,发现磁盘只使用了59%,还有16G的剩余空间,按理说不会出现这种问题。后来用df -i查看了一下索引节点(inode),发现已经用满(IUsed=100%),导致系统无法创建新目录和文件。
inode译成中文就是索引节点,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是Block,Block是用来存储数据用的。而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。
这台杭州服务器的Block虽然还有剩余,但inode已经用满,因此在创建新目录或文件时,系统提示磁盘空间不足。
解决方案:
宝塔Inode信息的清理方法:
请按照教程分别清理网站日志、php站点session、系统邮件、临时文件、面板回收站、mysql二进制日志
一:清理网站日志/php站点session/系统邮件/临时文件执行命令:
cd /www/server/panel && python tools.pyc clear
二:清空面板回收站执行命令:
rm -rf /www/Recycle_bin/*
三:清除mysql二进制日志
注意:清除mysql二进制日志过程中会停止重启数据库,除非必要,否则不建议清理此日志
执行命令:
/etc/init.d/mysqld stop
rm -f /www/server/data/ib_logfile*
rm -f /www/server/data/mysql-bin.*
/etc/init.d/mysqld start
注意:执行rm命令时,命令行是不会有任何显示的,如果不能输入命令说明正在执行删除操作,能输入命令的时候说明上一个删除任务已经完成。
清理完成后检查磁盘空间
执行上述清理磁盘空间的命令后,可以通过命令:
df -h
查看一下剩余的磁盘空间。只要Use%没有达到100%就可以了。