1.使用df -h查看磁盘空间占用情况
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda2 98G 6.5G 87G 7% /
tmpfs 1.9G 276K 1.9G 1% /dev/shm
/dev/vda1 485M 31M 429M 7% /boot
df 命令说明
- df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
- 主要命令参数:
-a 全部文件系统列表
-h 方便阅读方式显示
-H 等于“-h”,但是计算式,1K=1000,而不是1K=1024
-i 显示inode信息
-k 区块为1024字节
-l 只显示本地文件系统
-m 区块为1048576字节
2.使用 sudo du -s -h /* | sort -nr 命令查看那个目录占用空间大
由于篇幅省略部分内容展示
[root@localhost ~]# du -s -h /* | sort -nr
du: cannot access `/proc/26503/task/26503/fd/5': No such file or directory
du: cannot access `/proc/26503/task/26503/fdinfo/5': No such file or directory
du: cannot access `/proc/26503/fd/5': No such file or directory
du: cannot access `/proc/26503/fdinfo/5': No such file or directory
452K /dev
418M /usr
364K /tmp
258M /var
146M /lib
76K /root
75M /titan
44K /home
25M /etc
21M /boot
18M /lib64
16K /lost+found
9.0M /sbin
5.8M /bin
4.2G /app
4.0K /srv
4.0K /selinux
4.0K /mnt
4.0K /media
1.2G /opt
0 /sys
0 /proc
3.然后那个目录占用多 再通过sudo du -s -h /app/* | sort -nr 一层层排查,找到占用文件多的地方。
[root@localhost ~]# du -s -h /app/* | sort -nr
810M /app/smp_app
734M /app/uav.bk.20181109.old.bk
505M /app/uav
501M /app/uav.bk.20181114.old.bk
391M /app/tomcatapp
99M /app/smp-extension
87M /app/software
35M /app/apache-tomcat-7.0.73
26M /app/redis
15M /app/apache-tomcat-8.5.9
4.0K /app/test
4.0K /app/caifu
1.1G /app/uc_app
du命令说明
- 显示文件或目录所占用的磁盘空间。
- 命令格式:du [option] 文件/目录
- -h 输出文件系统分区使用的情况,例如:10KB,10MB,10GB等
- -s 显示文件或整个目录的大小,默认单位是KB
Linux 查找占用空间最大的文件与目录:du -h --max-depth=1
sort命令说明
- 将文本文件内容加以排序,sort可针对文本文件的内容,以行为单位来排序。
参数:
-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f 排序时,将小写字母视为大写字母。
-i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-m 将几个排序好的文件进行合并。
-M 将前面3个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。
-o<输出文件> 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-t<分隔字符> 指定排序时所用的栏位分隔字符。
+<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
4. 以上方法没有找到问题所在,那么可以使用 lsof | grep deleted 命令,看看是否删除掉的文件仍然被进程占用而没有进行实际删除
lsof命令说明
lsof(List Open Files) 用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP),找回/恢复删除的文件。
首先使用lsof来查看当前是否有进程打开/var/logmessages文件,如下:
# lsof |grep /var/log/messages
syslogd 1283 root 2w REG 3,3 5381017 1773647 /var/log/messages (deleted)
网友评论