排查linux服务器磁盘被占满了的方法
今天发现一台服务器的磁盘被占满了,所以这个时候就需要找出是那些文件比较多或者比较大,导致磁盘被占满了。
第一步:查看磁盘使用率
[root@iZ8vb3omil28ybw2zppjlwZ jobs]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 38G 222M 100% /
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 1.8G 0 1.8G 0% /dev/shm
tmpfs 1.8G 536K 1.8G 1% /run
tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup
tmpfs 365M 0 365M 0% /run/user/0
可以看到磁盘已经被使用了百分百,而且是在根目录下面的。所以需要查看根目录下每个文件夹和文件的大小
[root@iZ8vb3omil28ybw2zppjlwZ jobs]# du -h -d1 /
76K /Users
4.0K /srv
4.0K /mnt
2.9G /usr
536K /run
3.0G /home
34M /etc
3.3G /var
420K /tmp
du: cannot access ‘/proc/7227/task/7327/fdinfo/37’: No such file or directory
du: cannot access ‘/proc/7227/task/7341/fdinfo/37’: No such file or directory
du: cannot access ‘/proc/7227/task/7789/fdinfo/7’: No such file or directory
du: cannot access ‘/proc/7227/task/8571/fdinfo/40’: No such file or directory
du: cannot access ‘/proc/11914/task/11914/fd/4’: No such file or directory
du: cannot access ‘/proc/11914/task/11914/fdinfo/4’: No such file or directory
du: cannot access ‘/proc/11914/fd/3’: No such file or directory
du: cannot access ‘/proc/11914/fdinfo/3’: No such file or directory
0 /proc
0 /dev
28G /root
0 /sys
4.0K /opt
16K /lost+found
4.0K /media
132M /boot
38G /
可以发现在root目录下占用了28G,所以我们接着去root下面看看
[root@iZ8vb3omil28ybw2zppjlwZ jobs]# du -h -d1 /root
8.0K /root/.pip
20K /root/.config
7.0M /root/.cache
12K /root/.oracle_jre_usage
8.0K /root/.groovy
291M /root/docs
12K /root/.ssh
28G /root/.jenkins
8.0K /root/tmp
8.0K /root/是完全
24K /root/是
161M /root/.npm
24K /root/ls
608K /root/.ansible
8.0K /root/撒
4.0K /root/.m2
24K /root/GOOD
28G /root
发现是root下面的.jenkins占用的,再去.jenkins里面看看,就这样一步一步的查找到占用磁盘空间比较大的文件或者文件,然后清除掉。
还有一个文件就是当我们用rm -rf 这个命令清除掉文件后,这个文件夹是空的,但是用ll命令查看这个文件夹的时候,发现这个文件夹还占有空间,这个时候可能是我们删除了这个文件,但是这个文件的删除进程还在,所以也要杀掉这个删除文件的进程才能真的清理干净。
首先是查看删除进程
lsof |grep delete
然后就是杀掉删除进程
kill -9 `lsof | grep delete | awk '{print $2}'`
又水了一篇博客