查看Linux系统中磁盘空间使用情况及磁盘空间不足大文件明细查询方法

您所在的位置:网站首页 linux查看占用磁盘空间 查看Linux系统中磁盘空间使用情况及磁盘空间不足大文件明细查询方法

查看Linux系统中磁盘空间使用情况及磁盘空间不足大文件明细查询方法

2024-06-29 10:16| 来源: 网络整理| 查看: 265

查看Linux系统中磁盘空间使用情况及大文件明细查询方法 一、查看Linux磁盘空间使用情况: 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:指定区块大小为1048576字节; --no-sync:在取得磁盘使用信息前,不要执行sync指令,此为预设值; -P或--portability:使用POSIX的输出格式; --sync:在取得磁盘使用信息前,先执行sync指令; -t或--type=:仅显示指定文件系统类型的磁盘信息; -T或--print-type:显示文件系统的类型; -x或--exclude-type=:不要显示指定文件系统类型的磁盘信息; --help:显示帮助; --version:显示版本信息。 实例: 查看系统磁盘设备,默认是KB为单位,使用-h选项以KB以上的单位来显示,可读性高: [root@localhost bin]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 471M 0 471M 0% /dev tmpfs 487M 0 487M 0% /dev/shm tmpfs 487M 8.3M 478M 2% /run tmpfs 487M 0 487M 0% /sys/fs/cgroup /dev/sda3 18G 6.0G 12G 34% / /dev/sda1 297M 229M 69M 77% /boot tmpfs 98M 12K 98M 1% /run/user/42 tmpfs 98M 0 98M 0% /run/user/0 查看全部文件系统: [root@LinServ-1 ~]# df -a 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/sda2 146294492 28244432 110498708 21% / proc 0 0 0 - /proc sysfs 0 0 0 - /sys devpts 0 0 0 - /dev/pts /dev/sda1 1019208 62360 904240 7% /boot tmpfs 1032204 0 1032204 0% /dev/shm /dev/sdb1 2884284108 218826068 2518944764 8% /data1 none 0 0 0 - /proc/sys/fs/binfmt_misc 二、查看Linux文件及目录磁盘空间使用情况: du命令

du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的。

语法: 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 重复计算硬件链接的文件。 实例: 显示目录或者文件所占空间。只显示当前目录下面的子目录的目录大小和当前目录的总的大小,最下面的1288为当前目录的总大小: [root@localhost test]# du 608 ./test6 308 ./test4 4 ./scf/lib 4 ./scf/service/deploy/product 4 ./scf/service/deploy/info 12 ./scf/service/deploy 16 ./scf/service 4 ./scf/doc 4 ./scf/bin 32 ./scf 8 ./test3 1288 . 显示指定文件或目录所占空间(如果接的是目录,仅会显示目录及子目录所占空间大小): [root@localhost shell_22_num]# du -h test.sh 4.0K test.sh 显示多个文件所占空间: [root@localhost shell_22_num]# du -h test.sh test1.sh 4.0K test.sh 4.0K test1.sh 三、当磁盘空间不足时,查看大文件明细排查方法: 先查询哪个磁盘占空间较大: [root@localhost shell_22_num]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 471M 0 471M 0% /dev tmpfs 487M 0 487M 0% /dev/shm tmpfs 487M 8.3M 478M 2% /run tmpfs 487M 0 487M 0% /sys/fs/cgroup /dev/sda3 18G 6.0G 12G 34% / /dev/sda1 297M 229M 69M 77% /boot tmpfs 98M 12K 98M 1% /run/user/42 tmpfs 98M 0 98M 0% /run/user/0 查询磁盘所有文件中,大空间文件情况: [root@localhost shell_22_num]# du -sh /*|grep G du: cannot access ‘/proc/15839/task/15839/fd/3’: No such file or directory du: cannot access ‘/proc/15839/task/15839/fdinfo/3’: No such file or directory du: cannot access ‘/proc/15839/fd/3’: No such file or directory du: cannot access ‘/proc/15839/fdinfo/3’: No such file or directory 4.9G /usr

-s:只显示总计大小;-h:以K,M,G为单位,提高信息的可读性;/*:全部路径文件;grep G:抓取容量单位是G的文件(大于等于1G的文件都会被抓到)。

一步步精准定位具体目录及文件: [root@localhost shell_22_num]# du -sh /usr/*|grep G 1.1G /usr/lib 1.8G /usr/lib64 1.5G /usr/share 这种方法只能大致粗略定位,再往细了可能会翻车。就想下图所示: 因为路径中含有关键词“G”而被显示出来。 [root@localhost shell_22_num]# du -sh /usr/lib64/*|grep G ^[[5~124K /usr/lib64/GConf 0 /usr/lib64/libEGL_mesa.so.0 244K /usr/lib64/libEGL_mesa.so.0.0.0 0 /usr/lib64/libEGL.so.1 84K /usr/lib64/libEGL.so.1.1.0 0 /usr/lib64/libGeoIP.so.1 196K /usr/lib64/libGeoIP.so.1.5.0 0 /usr/lib64/libGLdispatch.so.0 628K /usr/lib64/libGLdispatch.so.0.0.0 0 /usr/lib64/libGLESv1_CM.so.1 48K /usr/lib64/libGLESv1_CM.so.1.2.0 0 /usr/lib64/libGLESv2.so.2 76K /usr/lib64/libGLESv2.so.2.1.0 0 /usr/lib64/libGLEW.so.1.10 544K /usr/lib64/libGLEW.so.1.10.0 0 /usr/lib64/libGL.so.1 572K /usr/lib64/libGL.so.1.7.0 0 /usr/lib64/libGLU.so.1 516K /usr/lib64/libGLU.so.1.3.1 0 /usr/lib64/libGLX_mesa.so.0 492K /usr/lib64/libGLX_mesa.so.0.0.0 0 /usr/lib64/libGLX.so.0 76K /usr/lib64/libGLX.so.0.0.0 0 /usr/lib64/libGLX_system.so.0

所以,明细部分需要直接使用du -sh [绝对路径下的文件名] 来查看。 确定文件后,就可以详细查询了。可以使用ls -lh [文件名] 等命令查看。

确认文件是否可以删除,再进行处理。 四、案例:如果向磁盘写入数据提示错误:no space left on device(磁盘空间不足)。通过df -h查看磁盘空间,发现没满。请问可能原因是什么? iNode用光了。

通过使用命令df -i可以查询iNode使用情况。

[root@localhost shell_22_num]# df -i Filesystem Inodes IUsed IFree IUse% Mounted on devtmpfs 120550 380 120170 1% /dev tmpfs 124466 1 124465 1% /dev/shm tmpfs 124466 877 123589 1% /run tmpfs 124466 16 124450 1% /sys/fs/cgroup /dev/sda3 18566144 190479 18375665 2% / /dev/sda1 281232 358 280874 1% /boot tmpfs 124466 9 124457 1% /run/user/42 tmpfs 124466 1 124465 1% /run/user/0

模拟测试环境: 在这里插入图片描述 在这里插入图片描述 上图可见,/dev/sdc磁盘空间仍有富裕,而iNode已满。无法创建log文件。

解决方法:干掉这些log文件。

在这里插入图片描述

五、磁盘空间不足的其他原因

1、block满了。 2、inode满了(详细见第四部分)。 3、block 硬链接数量为0,进程调用数不为0,文件没有被彻底删除磁盘空间不足。

就酱。

PS:老年人不适合烫脚。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3