2025年Linux下使用df与du命令查看磁盘空间

Linux下使用df与du命令查看磁盘空间背景 项目正常运行 然后某一天出现静态资源拿不到 需要重复刷新或者管理后台登录不上的情况 项目没有报异常 没有出错 经过排查 是服务器磁盘空间不足造成的 那就研究一下吧 这些东西是躲不过去也糊弄不过去的 1 df 命令 df 命令用于显示磁盘分区上的可使用的磁盘空间 默认显示单位为 KB

大家好,我是讯享网,很高兴认识大家。

背景

项目正常运行,然后某一天出现静态资源拿不到,需要重复刷新或者管理后台登录不上的情况。项目没有报异常,没有出错。经过排查,是服务器磁盘空间不足造成的。

那就研究一下吧,这些东西是躲不过去也糊弄不过去的。

【1】df命令

df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

语法

df(选项)(参数) 

讯享网

选项:

讯享网-a或--all:包含全部的文件系统; --block-size=<区块大小>:以指定的区块大小来显示区块数目; -h或--human-readable:以可读性较高的方式来显示信息; -H或--si:与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes; -i或--inodes:显示inode的信息; -k或--kilobytes:指定区块大小为1024字节; -l或--local:仅显示本地端的文件系统; -m或--megabytes:指定区块大小为字节; --no-sync:在取得磁盘使用信息前,不要执行sync指令,此为预设值; -P或--portability:使用POSIX的输出格式; --sync:在取得磁盘使用信息前,先执行sync指令; -t<文件系统类型>或--type=<文件系统类型>:仅显示指定文件系统类型的磁盘信息; -T或--print-type:显示文件系统的类型; -x<文件系统类型>或--exclude-type=<文件系统类型>:不要显示指定文件系统类型的磁盘信息; --help:显示帮助; --version:显示版本信息。 

参数:

文件(路径):指定文件系统上的文件(路径)。 

① df

讯享网[root@heheapp1 ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/vg_heheapp1-lv_root    39% / tmpfs  228  1% /dev/shm /dev/xvda1  69103  15% /boot /dev/mapper/vg_heheapp1-lv_home    2% /home 

② df -h

(使用-h选项以KB以上的单位来显示,可读性高)

[root@heheapp1 ~]# df -h 列注释:文件系统 容量 已用 可用 已用% 挂载点 Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_heheapp1-lv_root 50G 18G 29G 39% / tmpfs 16G 228K 16G 1% /dev/shm /dev/xvda1 477M 68M 384M 15% /boot /dev/mapper/vg_heheapp1-lv_home 39G 608M 37G 2% /home 

这里写图片描述
讯享网


③ df -a

讯享网[root@heheapp1 ~]# df -a Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/vg_app1-lv_root    39% / proc 0 0 0 - /proc sysfs 0 0 0 - /sys devpts 0 0 0 - /dev/pts tmpfs  228  1% /dev/shm /dev/xvda1  69103  15% /boot /dev/mapper/vg_app1-lv_home    2% /home none 0 0 0 - /proc/sys/fs/binfmt_misc none 0 0 0 - /proc/xen gvfs-fuse-daemon 0 0 0 - /root/.gvfs 

④ df -h /opt

查看/opt 路径下文件磁盘空间情况:

[root@pc0 /]# df -h /opt Filesystem Size Used Avail Use% Mounted on /dev/sda3 14G 6.1G 6.8G 48% / 

【2】du命令查看指定目录磁盘空间

du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看。可以这样理解,df偏向于整体磁盘-宏观,du倾向于文件目录-微观。

语法格式

讯享网du [选项][文件] 

选项:

-a或-all 显示目录中个别文件的大小。 -b或-bytes 显示目录或文件大小时,以byte为单位。 -c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。 -k或--kilobytes 以KB(1024bytes)为单位输出。 -m或--megabytes 以MB为单位输出。 -s或--summarize 仅显示总计,只列出最后加总的值。 -h或--human-readable 以K,M,G为单位,提高信息的可读性。 -x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。 -L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。 -S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。 -X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。 --exclude=<目录或文件> 略过指定的目录或文件。 -D或--dereference-args 显示指定符号链接的源文件大小。 -H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。 -l或--count-links 重复计算硬件链接的文件。 --max-depth=1 子目录深度 –help 显示帮助。 –version 显示版本信息。 

① du

讯享网[root@app1 tomcat8086]# du //建议使用du -h ,以M为单位 56 ./webapps/host-manager/images 16 ./webapps/host-manager/WEB-INF/jsp 28 ./webapps/host-manager/WEB-INF 8 ./webapps/host-manager/META-INF 104 ./webapps/host-manager 56 ./webapps/manager/images 44 ./webapps/manager/WEB-INF/jsp 56 ./webapps/manager/WEB-INF 8 ./webapps/manager/META-INF 144 ./webapps/manager 252 ./webapps 7560 ./lib 4 ./work/Catalina/localhost/host-manager 12 ./work/Catalina/localhost/ROOT/org/apache/jsp 16 ./work/Catalina/localhost/ROOT/org/apache 20 ./work/Catalina/localhost/ROOT/org 24 ./work/Catalina/localhost/ROOT 68 ./work/Catalina/localhost/manager/org/apache/jsp/WEB_002dINF/jsp 72 ./work/Catalina/localhost/manager/org/apache/jsp/WEB_002dINF 92 ./work/Catalina/localhost/manager/org/apache/jsp 96 ./work/Catalina/localhost/manager/org/apache 100 ./work/Catalina/localhost/manager/org 104 ./work/Catalina/localhost/manager 136 ./work/Catalina/localhost 140 ./work/Catalina 144 ./work 4 ./conf/Catalina/localhost 8 ./conf/Catalina 244 ./conf 4 ./temp 816 ./bin 2144 ./logs  ./hh  . 

只显示当前目录下面的子目录的目录大小和当前目录的总的大小,最下面的为当前目录的总大小,此时单位为kb。


② du [文件] - 显示指定文件所占空间

[root@app1 tomcat8086]# du ./logs/catalina.out 964 ./logs/catalina.out 

③ 查看指定目录的所占空间

讯享网[root@app1 tomcat8086]# du ./hh  ./hh 

④ 只显示总和的大小

[root@app1 tomcat8086]# du -sh 780M . 

⑤ 深度为1–du -ach --max-depth=1 /opt

讯享网[root@bogon home]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 18G 8.3G 8.3G 50% / tmpfs 491M 228K 491M 1% /dev/shm /dev/sda1 283M 34M 234M 13% /boot .host:/ 100G 18G 83G 18% /mnt/hgfs /dev/sdb1 2.0G 3.1M 1.9G 1% /home/sdb1 # 当前路径下,深度为1 [root@bogon home]# du --max-depth=1 ./  ./mysql 28 ./sdb1 572 ./jane 540 ./janus  ./ [root@bogon home]#  # 指定路径 深度为1与2对比 [root@bogon home]# du -ach --max-depth=1 /opt 4.0K /opt/rh 4.0K /opt/java需要软件百度云.txt 12K /opt/test 14M /opt/www 14M /opt 14M total [root@bogon home]# du -ach --max-depth=2 /opt 4.0K /opt/rh 4.0K /opt/java需要软件百度云.txt 8.0K /opt/test/test2 12K /opt/test 8.3M /opt/www/xc_train 5.3M /opt/www/bysj 14M /opt/www 14M /opt 14M total [root@VM-24-14-centos recruite8091]# du -h --max-depth=1 ./* 8.0K ./application.properties 4.0K ./clear.sh 8.0K ./config.json 83M ./recruit-0.0.1-SNAPSHOT.jar 4.0K ./restart.sh 4.0K ./stop.sh 

查看某个目录的文件大小并排序:

du -hm --max-depth=1 /var/ | sort -n 

【3】查看硬盘与分区信息

fdisk命令用于观察硬盘实体使用情况,也可对硬盘分区。

语法

讯享网fdisk(选项)(参数) 

选项

-b<分区大小>:指定每个分区的大小; -l:列出指定的外围设备的分区表状况; -s<分区编号>:将指定的分区大小输出到标准输出上,单位为区块; -u:搭配"-l"参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址; -v:显示版本信息。 

参数

设备文件:指定要进行分区或者显示分区的硬盘设备文件。

查看硬盘分区信息

讯享网[root@iZ8vb3n2dl2w360w65xtf3Z ~]# fdisk -l Disk /dev/vda: 42.9 GB,  bytes 255 heads, 63 sectors/track, 5221 cylinders Units = cylinders of 16065 * 512 =  bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00020f78 Device Boot Start End Blocks Id System /dev/vda1 * 1 5222  83 Linux 

【4】常用实践

① 统计/home文件夹下文件的个数

[root@bogon home]# ls -l /home|grep "^-"|wc -l 1 [root@bogon home]# ll total 20 drwx------. 25 jane jane 4096 Jun 14 07:06 jane drwx------. 24 janus mygroup 4096 Jul 4 00:31 janus -rw-r--r--. 1 root root 2140 Jul 10 20:29 java需要软件百度云.txt drwx------. 5 mysql mysql 4096 Jul 3 02:24 mysql drwxr-xr-x. 4 root root 4096 Jul 9 02:57 sdb1 

② 统计/home文件夹下目录的个数

讯享网[root@bogon home]# ls -l /home|grep "^d"|wc -l 4 

③ 统计/home文件夹下文件的个数,包括子文件夹里的

// R表示递归统计 [root@bogon home]# ls -lR /home|grep "^-"|wc -l 302 

④ 统计/home文件夹下目录的个数,包括子文件夹里的

讯享网[root@bogon home]# ls -lR /home|grep "^d"|wc -l 27 

⑤以树状显示目录结构

tree /home/ 

【5】df 与du显示空间不一致

背景:测试说磁盘空间不够了,df -h看了一下,200多G的硬盘占用100%。但是用du -sh /home看了一下只有103G。那么问题来了,另外100多G去哪里了?

使用lsof |grep deleted 命令检测如下图所示:
在这里插入图片描述
好了,发现问题了!Tomcat的apache-tomcat-8.5.37/logs/catalina.out143G没有彻底释放!重启Tomcat服务解决!

参考博文:Linux添加硬盘并进行分区、格式化、挂载

小讯
上一篇 2025-01-28 16:41
下一篇 2025-03-30 19:56

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/36861.html