CentOS下安装LNMP,如果磁盘空间比较小(10G),运行一段时间后,会出现硬盘爆满,直接导致网站无法运行。
检查硬盘空间占用情况:
1 |
df -h |
输入命令出来后,SIze为磁盘空间大小,Used为已使用空间,Avail为可用空间,Use%为使用百分比。如果百分比达到100%,网站就无法运行了,甚至FTP连接都无法进行。
解决方法:
1、清理Mysql日志,或清理后禁用日志。
操作原因:LNMP一键安装包安装的MySQL默认是开启了二进制日志文件的,如果数据操作比较频繁就会产生大量的日志,在/usr/local/mysql/var/下面产生mysql-bin.0000* 类似的文件,而且一般都在几十MB到几个GB,更甚会吃掉整个硬盘空间,从来导致mysql无法启动或报错。
(1)删除/usr/local/mysql/var目录中的mysql-bin.00000*日志文件,例如:
1 2 3 4 |
rm /usr/local/mysql/var/mysql-bin.000001 rm /usr/local/mysql/var/mysql-bin.000002 rm /usr/local/mysql/var/mysql-bin.000003 .... |
(2)彻底禁用MySQL日志:修改/etc/my.cnf 文件,找到
1 2 |
log-bin=mysql-bin binlog_format=mixed |
再这两行前面加上#,将其注释掉,再执行/etc/init.d/mysql restart即可。如下:
1 2 |
#log-bin=mysql-bin #binlog_format=mixed |
如果实在想保留日志,可以在/etc/my.cnf里[mysqld]部分中加入expire_logs_days = 10 然后重启mysql,这样10天就会自动清理日志。
2、清理系统日志。
1 |
cat /dev/null > logfile |
将logfile替换为日志文件的路径(含文件名)。
3、清理缓存。
4、逐个目录查找大文件进行清理。
如果仍不能确定具体磁盘的占用情况,可以使用 du -h 命令,从根目录开始挨个目录进行查找。
1 |
du -h --max-depth=1 / |
以上命令后面的数值1为目录层次,可逐步增加目录层次进行检查。或更改/目录路径。
5、如果以上方法均无效,别忘记重启一下系统。
亲身经历,在使用了以上方法后,正常使用一段时间后,磁盘使用率又达到100%,而使用du命令检查出来的文件大小,远远小于空间实际大小。于是绝望中重启了一下,再使用df -h命令,发现磁盘使用率恢复正常了。估计是临时文件占用太多空间。
以上方法整理自网络 ,希望有所帮助。