此处以CentOS 7操作系统为例演示

fdisk -l

运行fdisk -l查看现有磁盘大小。示例返回磁盘(/dev/vda)容量是42.9 GiB、( /dev/vdb)容量是53.7 GiB。
查看帮助:fdisk --help

$ fdisk -l
# 磁盘 /dev/vda 大小85.9 GB约等于80G
Disk /dev/vda: 85.9 GB, 85899345920 bytes, 167772160 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000b1b45
# 磁盘分区/dev/vda1,只有一个分区
   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048   167766794    83882373+  83  Linux

Disk /dev/vdb: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x70455029
# 磁盘分区/dev/vdb1,只有一个分区
   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048    83886079    41942016   83  Linux
  • 查看阿里云挂载盘

df -h

运行df -h查看磁盘分区大小。示例返回分区容量(/dev/vda1)是22 GiB。
查看帮助:df --help

# df -h
文件系统                                                                                容量   已用  可用  已用% 挂载点
Filesystem                                                                             Size  Used Avail Use% Mounted on
/dev/vda1                                                                               40G   22G   16G  58% /
devtmpfs                                                                               7.8G     0  7.8G   0% /dev
tmpfs                                                                                  7.8G     0  7.8G   0% /dev/shm
tmpfs                                                                                  7.8G  460K  7.8G   1% /run
tmpfs                                                                                  7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/vdb                                                                                50G  5.6G   42G  12% /data
6baf54b40c-rji62.cn-qingdao.nas.aliyuncs.com:/                                          10P  2.0G   10P   1% /mnt
#一些其他的分区
tmpfs 7.8G   12K  7.8G   1% /data/k8s/k8s/kubelet/pods/xxx/volumes/kubernetes.io~secret/rabbitmq-token-kfl7k
tmpfs 7.8G   12K  7.8G   1% /data/k8s/k8s/kubelet/pods/xxx/volumes/kubernetes.io~secret/default-token-n86w9
。。。

aliyuncs.com://k8s-prod/config-service 10P  2.0G   10P   1% /data/k8s/k8s/kubelet/pods/xxx/volumes/kubernetes.io~nfs/java-init
aliyuncs.com://k8s-prod/seller-api/v2  10P  2.0G   10P   1% /data/k8s/k8s/kubelet/pods/xxx/volumes/kubernetes.io~nfs/copy-init
aliyuncs.com://k8s-prod/rabbitmq-persistent/cluster-1   10P  2.0G   10P   1% /data/k8s/k8s/kubelet/pods/xxx/volumes/kubernetes.io~nfs/pv-rmq-2

overlay             50G  5.6G   42G  12% /data/k8s/docker/data/overlay2/50c4da628aa0bc77ba81dbf68d4e3b14f25cdcaeaa1b8d431200313663bed011/merged
overlay             50G  5.6G   42G  12% /data/k8s/docker/data/overlay2/b3cc75f9790bfbec141508852daa4b6c3f587e17c68572eb229385a27b6c9103/merged
。。。


shm    64M     0   64M   0% /data/k8s/docker/data/containers/746fd30d86b884cd193afaa92164e7b13bddcf604c24040f1028b1e84b909470/mounts/shm
shm    64M     0   64M   0% /data/k8s/docker/data/containers/2b0c3b18a4f0d9cf595d0155649572828cadfa62825df3bb8ee6d40a3a3819dc/mounts/shm
shm    64M     0   64M   0% /data/k8s/docker/data/containers/edeb759cd3db5994ef6265b77d7c3138154ddbd0a3be94851aa2fa10538245a9/mounts/shm
。。。

还有可以加参数T显示类型

# df -Th
文件系统                                                                                类型      容量   已用  可用  已用%  挂载点
Filesystem                                                                            Type      Size  Used Avail Use% Mounted on
/dev/vda1                                                                             ext4       40G   22G   16G  58% /
devtmpfs                                                                              devtmpfs  7.8G     0  7.8G   0% /dev
tmpfs                                                                                 tmpfs     7.8G     0  7.8G   0% /dev/shm
tmpfs                                                                                 tmpfs     7.8G  460K  7.8G   1% /run
tmpfs                                                                                 tmpfs     7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/vdb                                                                              ext4       50G  5.6G   42G  12% /data
6baf54b40c-rji62.cn-qingdao.nas.aliyuncs.com:/                                        nfs4       10P  2.0G   10P   1% /mnt

du -h

磁盘大小统计,统计当前文件夹内各个文件夹大小
查看帮助:du --help

$ du -h -d 1
4.5M	./cluster-0
4.5M	./cluster-1
4.5M	./cluster-2
14M	.

# 查看固定目录占用大小
$ du -hs /var
2.4G	/var

-h:人类可以看懂的,会按照M/G/P/T统计,否则显示字节数
-d:统计当前文件夹深度,若不设置则一直向下统计

对于大文件日志

删除日志文件后并不是立即释放了空间,还有进程锁定呢
需要kiill -9 pid或者重启应用,才能真正释放占用空间

结论是“在Linux中,当我们使用rm在linux上删除了大文件,但是如果有进程打开了这个大文件,却没有关闭这个文件的句柄,那么linux内核还是不会释放这个文件的磁盘空间,最后造成磁盘空间占用100%,整个系统无法正常运行。这种情况下,通过df和du命令查找的磁盘空间,两者是无法匹配的,可能df显示磁盘100%,而du查找目录的磁盘容量占用却很小。”

[root@test3 /]$ du -sh /
12G	/  # 整个根目录才12G
[root@test3 /]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        79G   77G     0 100% /   # df查看磁盘已经占满了

查找被删除但是未被释放空间的文件

清理磁盘空间时,rm掉文件后,发现磁盘空间并没有释放,根本是原因是文件被进程打开中,文件描述符未被释放

关键点:利用lsof命令查看

yum install -y lsof
lsof | grep deleted

解决方案一:

重启对应进程,或者给对应进程发送信号,释放文件描述符。

解决方案二:

不要用rm命令,利用重定向覆盖文件内容

echo "" > "needrmfile"

解决方案三:
简单粗暴:重启系统