Centos rootfs 100% 问题解决
No space left on device;
于是查看硬盘空间:
[root@ns3032603 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 20G 19G 69M 100% /
/dev/root 20G 19G 69M 100% /
devtmpfs 63G 516K 63G 1% /dev
/dev/md3 1.8T 155G 1.6T 9% /home
tmpfs 63G 0 63G 0% /dev/shm
rootfs 和 /dev/root 使用100%了。要查找那个文件占用了硬盘空间:
[root@ns3032603 ~]#du -x --max-depth=1 / | sort -nr
18888076 /
16971600 /usr
1603936 /root
213812 /var
28404 /etc
24656 /sbin
22060 /lib64
11964 /boot
7436 /bin
4148 /lib
16 /tmp
16 /lost+found
4 /srv
4 /selinux
4 /opt
4 /mnt
4 /media
4 /home
0 /sys
0 /proc
0 /dev
由此可以看出是 /usr 目录占了空间,继续使用du查找目录:
[root@ns3032603 ~]#du -x --max-depth=1 /usr | sort -nr
继续一层一层的找下去,最终找到是 /usr/local/nginx/logs 中的error.log 占用了16G的空间。英文配置文件中打开了info log使得nginx log文件变得很大。 删除该文件:
[root@ns3032603 ~]# rm -f /usr/local/nginx/logs/error.log
文件已经删除,但是发现空间还是没有释放,通过以下命名查看删除的文件有没有被释放:
[root@ns3032603 logs]# lsof | grep -i delete
delete_wo 274 root cwd DIR 9,2 4096 2 /
delete_wo 274 root rtd DIR 9,2 4096 2 /
delete_wo 274 root txt unknown /proc/274/exe
mysqld 1676 mysql 4u REG 9,2 0 956349 /tmp/ibjRHtgS (deleted)
mysqld 1676 mysql 5u REG 9,2 0 956355 /tmp/ib4tjuAZ (deleted)
mysqld 1676 mysql 6u REG 9,2 0 956446 /tmp/ibe80wU6 (deleted)
mysqld 1676 mysql 7u REG 9,2 0 956447 /tmp/ibm2P0ee (deleted)
mysqld 1676 mysql 11u REG 9,2 0 956448 /tmp/ibOoXQ1l (deleted)
nginx 1799 root 2w REG 9,2 15631479984 850679 /usr/local/nginx/logs/error.log (deleted)
nginx 1799 root 4w REG 9,2 15631479984 850679 /usr/local/nginx/logs/error.log (deleted)
nginx 1804 nobody 2w REG 9,2 15631479984 850679 /usr/local/nginx/logs/error.log (deleted)
nginx 1804 nobody 4w REG 9,2 15631479984 850679 /usr/local/nginx/logs/error.log (deleted)
nginx 1805 nobody 2w REG 9,2 15631479984 850679 /usr/local/nginx/logs/error.log (deleted)
nginx 1805 nobody 4w REG 9,2 15631479984 850679 /usr/local/nginx/logs/error.log (deleted)
nginx 1806 nobody 2w REG 9,2 15631479984 850679 /usr/local/nginx/logs/error.log (deleted)
nginx 1806 nobody 4w REG 9,2 15631479984 850679 /usr/local/nginx/logs/error.log (deleted)
nginx 1807 nobody 2w REG 9,2 15631479984 850679 /usr/local/nginx/logs/error.log (deleted)
nginx 1807 nobody 4w REG 9,2 15631479984 850679 /usr/local/nginx/logs/error.log (deleted)
删除的文件还在,原因是 nginx 还在使用 error.log 这个文件,要停掉nginx才能释放空间。
查找大于 800M的文件,并排序 :
find / -type f -size +800M -print0 | xargs -0 du -h | sort -n