良许Linux教程网 Linux命令大全 Linux系统查看磁盘空间命令:du,df

Linux系统查看磁盘空间命令:du,df

作为 Linux 管理人员,需要及时关注磁盘空间的使用情况,如果剩余容量越来越小时,为了避免影响业务,就需要及时进行扩容操作。本文主要介绍在 Linux 系统中如何查看剩余磁盘以及文件夹空间的命令。

1. du

功能说明: du 命令可以用于统计磁盘空间的使用情况,这个命令有助于我们找出哪个文件过多地占用了磁盘空间。

语法格式:

du [option] [file]du [选项] [文件或目录]

常用参数说明:

-a:显示所有文件大小

-h:以人类可读的方式查看大小

-s:显示文件的总大小

示例:

通过 -a 显示所有目录或文件所占空间,显示当前目录下所有文件,包括隐藏文件及子目录下的所有文件的大小。

[user1@VM-16-64-centos ~]$ cd /etc/
[user1@VM-16-64-centos etc]$ du -a
4 ./netconfig
4 ./cron.weekly
4 ./rhsm/syspurpose/valid_fields.json
8 ./rhsm/syspurpose
12 ./rhsm
4 ./shadow-
......

-s-h 的使用:

[root@VM-16-64-centos etc]# du -sh
24M .

2. df

这个命令的作用就是 report file system disk space usage 即输出文件系统磁盘空间使用情况,是一个很基础的命令,平时也用的比较多,我们看一下执行这条命令的的输出:

[user1@VM-16-64-centos ~]$ df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  398M     0  398M   0% /dev
tmpfs          tmpfs     411M   24K  411M   1% /dev/shm
tmpfs          tmpfs     411M  432K  411M   1% /run
tmpfs          tmpfs     411M     0  411M   0% /sys/fs/cgroup
/dev/vda1      ext4      9.8G  6.1G  3.3G  65% /
tmpfs          tmpfs      83M     0   83M   0% /run/user/0
/dev/vdb       ext4      9.8G   37M  9.3G   1% /data

选项解释:

-T:打印文件系统类型

-h:以人类可读的方式打印出空间大小

命令和选项都很好理解,可以看到,这个命令的输出有 7 列,分别代表的意思解释如下:

Filesystem:文件系统对应的设备文件的路径名即硬盘上的分区

Type:文件系统的类型

Size:文件系统的总大小

Used:文件分区的使用大小

Avail:文件分区的可用大小

Use%:文件分区使用的百分比

Mounted on:文件系统的挂载点

**注意:**第 4 列和第 5 列之和不等于第 3 列是因为默认的每个分区都预留了少量空间供 root 使用。即使遇到空间已满的情况,root 仍能登录和拥有解决问题所需的工作空间。

常用相关命令总结:

  • df -hl:查看磁盘剩余空间
  • df -h:查看每个根路径的分区大小
  • du -sh [目录名]:返回该目录的大小
  • du -sm [文件夹]:返回该文件夹总 M 数
  • du -h [目录名]:查看指定文件夹下的所有文件大小(其中包含子文件夹)

df 命令以磁盘分区为单位查看文件系统,然后获取硬盘被占用的空间,以及目前还剩多少存储空间等。du 命令的英文原译为 ” disk usage “,其含义为显示磁盘上空间的使用情况,用于查看当前目录的总大小。以上介绍的两个命令都是用来查看磁盘空间相关,平时使用频率也比较高,希望通过今天的介绍可以让大家对两个命令有所了解。

最后这里在跟大家分享一个工作中遇到的案例,之前有客户来提问,为什么机器上磁盘空间还有,但是在写入操作时却显示 “no space left on device“,遇到这个报错不要慌。今天就来告诉大家原因,这种情况一般都是因为磁盘的 inode 节点满导致的,可以使用 ” df -i ” 查看,会发现相应的分区是 100%。这种情况的发生是因为系统里小文件过多占用了大量的 inode 节点。服务器上小文件过多,导致 inode 节点急剧增加,消耗 inode 区域的空间。

改进方法:

可以通过 du -lh --max-depth=1 查看当前目录下每个目录和文件的实际总容量,判断哪个目录占用空间太大。
或者使用 du -sh /[^p]* 查看根目录下哪个文件夹大小异常,再深入查找占空间的文件。如果文件上找不到占空间的,要考虑 lsof | grep delete ,查找这种进程未释放的空间(原理是进程使用了这个文件,文件被删除后,进程一直占着,未释放,就会导致系统里看不到文件,但是空间被占满问题)。重启进程就能释放。

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部