如何查看剩余的磁盘空间?

如何查看已使用/剩余的磁盘空间?
9个回答

你可以使用两个命令:`df` 和 `du`。

`df` - 报告文件系统磁盘空间使用情况

用法如下:

df -h

应该输出类似于这样的内容:

Filesystem            Size  Used Avail Use% Mounted on
/dev/vzfs              20G  3.5G   16G  18% /

-h标志提供了易读的输出(使输出更容易阅读)。

du - 估计文件空间使用情况

第二个工具是使用du,这是一种较慢的方法,但可以更好地分解每个目录。关于此信息,请参阅如何确定系统中最大的文件/目录存储位置?


有几个很好的命令行工具可用于报告磁盘使用情况。使用对您最有帮助的那个:

df

$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              56G  4.4G   48G   9% /
none                  1.5G  256K  1.5G   1% /dev
none                  1.5G  472K  1.5G   1% /dev/shm
none                  1.5G  400K  1.5G   1% /var/run
none                  1.5G     0  1.5G   0% /var/lock
tmpfs                 1.5G  596K  1.5G   1% /var/log
tmpfs                 1.5G  8.0K  1.5G   1% /var/log/apt
/dev/sdb2             840G  579G  253G  70% /home

df是默认安装的。

pydf

$ pydf
Filesystem  Size  Used Avail Use%                               Mounted on
/dev/sda1    55G 4437M   48G  7.9 [##.........................] /         
none       1506M  256k 1505M  0.0 [...........................] /dev      
/dev/sdb2   839G  578G  252G 68.9 [###################........] /home

列标题被着色。

讨论

$ discus
Mount           Total         Used         Avail      Prcnt      Graph
/               55.02 GB      4.33 GB     50.69 GB     7.9%   [*---------]
/sys                0 KB         0 KB         0 KB     0.0%   [----------]
+onnections         0 KB         0 KB         0 KB     0.0%   [----------]
+rnel/debug         0 KB         0 KB         0 KB     0.0%   [----------]
+l/security         0 KB         0 KB         0 KB     0.0%   [----------]
/dev             1.47 GB       256 KB      1.47 GB     0.0%   [----------]
/dev/shm         1.48 GB       472 KB      1.48 GB     0.0%   [----------]
/var/run         1.48 GB       400 KB      1.48 GB     0.0%   [----------]
/var/lock        1.48 GB         0 KB      1.48 GB     0.0%   [----------]
/var/log         1.48 GB       596 KB      1.48 GB     0.0%   [----------]
+ar/log/apt      1.48 GB         8 KB      1.48 GB     0.0%   [----------]
/home          839.00 GB    578.13 GB    260.87 GB    68.9%   [*******---]
+infmt_misc         0 KB         0 KB         0 KB     0.0%   [----------]
+e/ak/.gvfs         0 KB         0 KB         0 KB     0.0%   [----------]

列标题和进度条都有颜色。

di

$ di
Filesystem         Mount              Mebis     Used    Avail %Used fs Type
/dev/sda1          /                56340.2   4436.7  49041.6  13%  ext4   
/dev/sdb2          /home           859138.9 592008.8 258401.8  70%  ext4   
tmpfs              /var/log          1511.2      0.6   1510.6   0%  tmpfs  
tmpfs              /var/log/apt      1511.2      0.0   1511.2   0%  tmpfs

优秀的选择,尤其是pydf和discus。 - Ubuntuser
pydf能够忽略snap的使用大小吗? - alper

你可以使用这个命令来查找你的主目录中文件占用的空间大小(将~/替换为/以查看整个文件系统),并按照文件大小进行排序。
du -sk ~/* | sort -n


谢谢!我花了好长时间才找到这个答案! - Ryan

尝试使用du -sh <dir>命令。
例如,du -sh /home/mark将以人类可读的输出形式显示/home/mark的摘要使用报告。

ncdu

您也可以使用ncdu(直接从Ubuntu存储库中获取),它使用ncurses库在终端中直接显示图形概述。

例如:

ncdu -x /

将分析根分区的磁盘使用情况,而不会跨越文件系统边界

太棒了!谢谢你! - Idemax
这是服务器的一个很好的解决方案 - undefined

df -h 是你最好的选择(在终端中运行它)。


请注意,df -h 只会显示已挂载分区上的剩余空间。假设在运行之前还有 NTFS 和 FAT32 分区,请确保将所有分区都挂载。如果 Ubuntu 是您机器上唯一的操作系统,那么我认为 df 不会有任何问题。

获取一个以百分比表示磁盘利用率的数值。
该表达式将所有卷的总空间、可用空间和已使用空间以kB为单位进行汇总,并最终计算出磁盘利用率的总百分比。
df --block-size=1K --output=source,size,used,avail | awk 'NR > 1 {total_size += $2; total_used += $3} END {printf "%.1f%%\n", total_used / total_size * 100}'

请自行承担风险

对于您的使用情况,这可能会失败。如果您想手动检查磁盘利用率,df -h 将完全适用。

再次强调,这绝不是完美的。如果您使用此方法,请确保在每台机器上单独测试,以确保所关注的卷被正确返回。

自定义监控表达式的完整命令(例如zabbix)

我希望排除使用量小于5GB(5000000 kB)的卷,并排除其他我不感兴趣的卷。这在zabbix或任何使用自定义表达式的监控工具中非常有效。

您可以通过删除awk表达式来调试此命令,并决定要包含还是排除哪些内容。

此命令使用Zabbix中的宏参数化了阈值,并且如下所示:

df --block-size=1K --output=source,size,used,avail | awk '!/tmpfs|loop|shm|overlay|udev/ && $3 >= {$DISK.MIN.SIZE} && NR > 1 {total_size += $2; total_used += $3} END {printf "%.1f%%\n", total_used / total_size * 100}'

我随后能够将默认阈值({$DISK.MIN.SIZE})设置为0,并将其增加到例如5GB,用于一台机器,其中有一个卷我不想跟踪,因为它几乎是空的。