作为一个Linux管理员,管理 Linux 服务器上的磁盘空间是一项重要任务。例如,安装包管理器应用程序会提示需要多少磁盘空间,这个时候应该知道系统有多少可用空间,这样才能够使这个应用程序能够正常的安装并且运行。下面就来看一下如何使用不同的命令和方法来检查Linux中的磁盘空间。这些命令和方法中的大多数应该在大多数Linux发行版上可用。通过这些命令还可以创建脚本来监视磁盘大小使用情况并创建警报或发送邮件(这需要邮件服务器)才行。
1,通过df命令检查
df 是检查Linux安装程序上可用分区空间的最常用的命令之一。可以使用“df -TH”以直观易读的格式打印分区类型和分区大小。此命令将显示每个部分的总可用空间、已用空间和可用空间。
[sharplee@sharplee creatfile]# df -TH
还可以使用其他参数(df -THi)来打印每个分区的可用、已用和未使用的inode计数。
2,通过fdisk命令检查
fdisk是另一个非常方便的系统管理员实用程序。fdisk是一个用户交互式程序,主要用于创建和操作分区表,例如创建,删除,修改分区。但是,也可以使用此实用程序列出连接到Linux系统的可用磁盘以及相应的磁盘大小。
点击下载“修复打印机驱动工具”;
[sharplee@sharplee creatfile]# fdisk -l
通过上面可以看出/dev/sda磁盘的大小是21.5G。输出还显示了有关此磁盘的更多详细信息,其中它包含两个分区 /dev/sda1 和 /dev/sda2。"fdisk -l"的输出可以看出输出很多内容并且很长,如果只想检查磁盘空间,可以使用这个命令:
[sharplee@sharplee creatfile]# fdisk -l | awk '$1=="Disk" && $2 ~ /^\/dev\/.*/ {print $2 $3 $4}'
3,通过parted命令检查
parted 是 fdisk 的另一种替代方案,也用于操作磁盘分区。它对于为新操作系统创建空间、重新组织磁盘使用情况以及将数据复制到新硬盘非常有用。与 fdisk 类似,可以使用 parted -l 列出所有可用磁盘及其各自的大小:
[root@sharplee creatfile]# parted -l
和fdisk命令一样,parted命令展示的内容太多,也可以使用以下命令查看具体的磁盘空间。
[root@sharplee creatfile]# parted -l | awk '$1=="Disk" && $2 ~ /^\/dev\/.*/ {print $2 $3 $4}'
4,通过du命令检查
du是另一个很棒的实用程序,用于在Linux中以递归方式检查文件大小。它还可以以递归方式汇总目录的文件集的磁盘使用情况。du 是一个非常通用的工具,支持多个参数。
[root@sharplee creatfile]# du -h /boot/*
上图是通过递归来打印/boot/分区下的文件大小。下图是打印总的分区的大小。
[root@sharplee creatfile]# du -sch /boot/*
下图是展示该分区下大于20M的文件的列表。
[root@sharplee creatfile]# du -ach -t 20M /boot/* | sort -hr
5,通过lsblk命令检查
lsblk列出了有关所有可用或指定块设备的信息。lsblk 命令读取 sysfs 文件系统和udevdb以收集信息。如果udevdb不可用,或者lsblk在没有udevdb支持的情况下编译,则它会尝试从块设备读取LABEL、UUID和文件系统类型。
[root@sharplee creatfile]#lsblk
6,通过blockdev命令检查
可以使用blockdev命令为指定设备打印报告。也可以给多个设备打印。如果未给出任何设备,则会显示出现在 /proc/分区中的所有设备。请注意,分区 StartSec 位于 512 字节扇区中。
[root@sharplee creatfile]# blockdev --report
7,通过lshw命令检查
lshw是一个小工具,用于提取有关计算机硬件配置的详细信息。它可以报告支持 DMI 的 x86 或 IA-64 系统以及某些 PowerPC 机器上的确切内存配置、固件版本、主板配置、CPU 版本和速度、缓存配置、总线速度等。
[root@sharplee creatfile]# lshw -c disk | grep -E "logical name|size:"
8,通过查看系统日志来检查
使用系统日志来查看,例如使用 dmesg 或 journalctl -b 的引导日志,并尝试搜索相应的磁盘以获取更多信息。
[root@sharplee creatfile]# dmesg | grep sda
9,通过lsscsi来检查
sscsi使用sysfs(Linux 内核系列 2.6 及更高版本)中的信息来列出当前连接到系统的SCSI设备(或主机)。许多非SCSI存储设备(但不是全部)在Linux中使用SCSI子系统。在lsscsi版本中,0.30版支持已添加到列出NVMe设备。
[root@sharplee creatfile]# lsscsi --size
10,通过sfdisk来检查
sfdisk再次是fdisk和parted的替代品。fdisk和sfdisk之间的主要区别之一是 sfdisk读取和写入分区表,但不像 fdisk或cfdisk那样是交互式的(它从文件或stdin读取输入)。它通常用于从脚本中对驱动器进行分区或用于分区表备份和恢复。
[root@sharplee creatfile]# sfdisk -s