linux磁盘占用达到100%清理记录
执行df -h查看自己的数据磁盘到达97%
使用du -h --max-depth=1 依次查看数据占用较大的文件一直定位到那个文件
清理记录
1.mysql慢查询日志
# mv slow.log slow.log.bak #备份重命名慢查询日志
# mysqladmin -uusername -ppwd flush-logs #命令执行生成新的慢查询日志文件,这个命令不需要重启mysql
2mysql清理二进制日志mysql-bin.000001
查看文件大小ls -l --block-size=G
登录mysql执行mysql> reset master;
reset master功能说明:删除所有的binlog日志文件,并将日志索引文件清空,重新开始所有新的日志文件。用于第一次进行搭建主从库时,进行主库binlog初始化工作;
如果做了主从MySQL的注意别轻易执行reset master;
3.清理其它占用磁盘大的日志文件
rm -rf 清理你看不顺眼的文件;(ps:root用户别轻易使用)
4.使用du -h --max-depth=1查看所有文件总大小跟df -h查出来的不一致
也就是df -h查出来比如40G系统盘消耗了100%容量, 但是du -h --max-depth=1查出来总计只有15G
明明删了几个文件,磁盘占用还是高达90%。
解决办法用 lsof | grep deleted命令查看是否还有进程在使用那些删了的文件,没有lsof就安装yum -y install lsof
如图可以看到,我已经rm -rf 删了的nginx日志,用lsof | grep deleted查出还是被占用没有完全释放,文件被删除,而进程还活着,因而造成还占用空间的现象
我的磁盘占用是92%; 当我重启nginx,也就是释放了占用的进程,现在磁盘占用是5%;成功解决!
因为我的是nginx,所以我重启nginx就可以了,如果是其它的占用可以根据lsof列出的进程号,kill这些进程后,空间就释放出来了