By accessing the website and accepting the Cookie Policy, you agree to use the cookies provided by the Site in accordance with to analyze traffic, remember your preferences, and optimize your experience.
linux磁盘已满,查看文件占用,找到占用最高的文件夹或文件
2022-02-09 17:37:29    579    0    0
emengweb

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) 

这里显示syslogd占用了此文件,停止进程。之后重新启动进程,就OK了。

上一篇: linux查看磁盘空间df,内存空间free,文件大小du

下一篇: 如何为Linux配置全局代理,以Debian为例

579 人读过
文档导航