技术之道

长风破浪会有时,直挂云帆济沧海

  • 首页
  • 分类
  • 归档
  • 标签

  • 搜索
服务治理 k8s tabnine cursor github copilot ai chatgpt chatgpt ai sop 技术选型 bigdata 工具 多进程多线程 docker 计算机网络 mysql 事务 基础架构 kafka nio 分布式 服务搭建 监控 jvm 管理/成长 jenkins devops 云原生 nginx 架构 故障处理 hive spark mapreduce apm redis memcached java 性能 linux

Linux常用工具之磁盘管理

发表于 2023-01-29 | 分类于 工具 | 0 | 阅读次数 322

Linux常用工具之磁盘管理

Linux 磁盘管理常用三个命令为 df、du 和 fdisk。

  • df(英文全称:disk free):列出文件系统的整体磁盘使用量
  • du(英文全称:disk usage):检查磁盘空间使用量
  • fdisk:用于磁盘分区

df

查看磁盘空间使用情况

df 命令报告我们拥有多少磁盘空间(空闲磁盘空间)。

$ df
Filesystem      1K-blocks      Used Available Use% Mounted on
devtmpfs          3993324         0   3993324   0% /dev
tmpfs             4004320        24   4004296   1% /dev/shm
tmpfs             4004320       820   4003500   1% /run
tmpfs             4004320         0   4004320   0% /sys/fs/cgroup
/dev/vda1      1031986308 460769788 529174496  47% /
tmpfs              800864         0    800864   0% /run/user/0

正如你所见,输出结果分为六列。我们来看一下每一列的含义。

  • Filesystem – Linux 系统中的文件系统
  • 1K-blocks – 文件系统的大小,用 1K 大小的块来表示。
  • Used – 以 1K 大小的块所表示的已使用数量。
  • Available – 以 1K 大小的块所表示的可用空间的数量。
  • Use% – 文件系统中已使用的百分比。
  • Mounted on – 已挂载的文件系统的挂载点。

在上面的示例中你可能已经注意到了,它使用 1K 大小的块为单位来表示使用情况,如果以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示,可以使用 -h 标志。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        3.9G     0  3.9G   0% /dev
tmpfs           3.9G   24K  3.9G   1% /dev/shm
tmpfs           3.9G  820K  3.9G   1% /run
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/vda1       985G  440G  505G  47% /
tmpfs           783M     0  783M   0% /run/user/0

显示文件系统类型

使用 -T 标志显示文件系统类型

$ df -T
Filesystem     Type      1K-blocks      Used Available Use% Mounted on
devtmpfs       devtmpfs    3993324         0   3993324   0% /dev
tmpfs          tmpfs       4004320        24   4004296   1% /dev/shm
tmpfs          tmpfs       4004320       820   4003500   1% /run
tmpfs          tmpfs       4004320         0   4004320   0% /sys/fs/cgroup
/dev/vda1      ext4     1031986308 460770416 529173868  47% /
tmpfs          tmpfs        800864         0    800864   0% /run/user/0

du

du命令是disk usage的缩写,打印文件或目录使用的磁盘空间量估算。这对于查找占用大量磁盘空间的文件和目录非常有用。

du命令的默认行为是打印文件目录占用的磁盘空间,而不是真是的文件大小。要打印文件目录真实大小,请使用du命令--apparent-size选项。

查看目录文件大小

要打印指定目录的总大小,而不打印子目录和文件的大小,请使用du命令-s选项。du命令默认使用KB为单位打印文件目录的大小,在这里我们组合使用du命令的-h选项自动根据文件大小选择合适的大小单位打印目录文件夹的大小。

$ du -s /var/lib/
113761124       /var/lib/
$ du -sh /var/lib/
109G    /var/lib/

统计多个目录总大小

du命令的-c选项可以合并多个目录的总大小,当您要获取两个或多个目录的合并后的总大小时,此选项非常有用。

$ du -csh /var/log /var/lib
3.2G    /var/log
109G    /var/lib
112G    total

使用通配符统计

du命令可以通过通配符模式,统计目录下所有子目录磁盘占用量。

# *匹配所有目录
$ du -csh /var/*
4.0K    /var/adm
402M    /var/cache
4.0K    /var/crash
20K     /var/db
8.0K    /var/empty
4.0K    /var/games
4.0K    /var/gopher
12K     /var/kerberos
109G    /var/lib
4.0K    /var/local
0       /var/lock
3.2G    /var/log
0       /var/mail
4.0K    /var/nis
8.0K    /var/opt
4.0K    /var/preserve
2.9M    /var/queue
0       /var/run
116K    /var/spool
20K     /var/tmp
4.0K    /var/yp
113G    total

也可以指定前缀方式打印匹配到的子目录磁盘占用量。

# 以l开发的所有目录大小
$ du -csh /var/l*
109G    /var/lib
4.0K    /var/local
0       /var/lock
3.2G    /var/log
112G    total

指定目录深度级别

默认情况下,du命令将会递归遍历指定目录的所有子目录,然后以千字节打印文件目录的大小。如果要打印指定目录深度级别的目录大小,请使用du命令的--max-depth选项并指定子目录级别。

例如命令du -h --max-depth=1 /var/lib仅打印/var/lib下第一级目录的总大小。

$ du -ch --max-depth=1 /var/lib
4.0K    /var/lib/os-prober
8.0K    /var/lib/logrotate
17G     /var/lib/docker
128K    /var/lib/alternatives
4.0K    /var/lib/games
4.0K    /var/lib/mysql-files
248K    /var/lib/cloud
4.0K    /var/lib/dbus
92G     /var/lib/mysql
8.0K    /var/lib/rsyslog
4.0K    /var/lib/mysql-keyring
20K     /var/lib/pgsql
4.0K    /var/lib/initramfs
28K     /var/lib/NetworkManag
4.0K    /var/lib/machines
4.0K    /var/lib/rpm-state
20M     /var/lib/yum
8.0K    /var/lib/chrony
28K     /var/lib/polkit-1
16K     /var/lib/dhclient
4.0K    /var/lib/selinux
4.0K    /var/lib/misc
8.0K    /var/lib/plymouth
28K     /var/lib/iscsi
182M    /var/lib/rpm
8.0K    /var/lib/postfix
20K     /var/lib/authconfig
76K     /var/lib/systemd
12K     /var/lib/stateless
8.0K    /var/lib/ntp
109M    /var/lib/mlocate
4.0K    /var/lib/tuned
109G    /var/lib
109G    total

fdisk

fdisk 的意思是 固定磁盘Fixed Disk 或 格式化磁盘Format Disk,它是命令行下允许用户对分区进行查看、创建、调整大小、删除、移动和复制的工具。它支持 MBR、Sun、SGI、BSD 分区表,但是它不支持 GUID 分区表(GPT)。它不是为操作大分区设计的。

fdisk 允许我们在每块硬盘上创建最多四个主分区。它们中的其中一个可以作为扩展分区,并下设多个逻辑分区。1-4 扇区作为主分区被保留,逻辑分区从扇区 5 开始。

查看磁盘分区情况

在执行操作之前,我们必须知道的是哪些磁盘被加入了系统。使用fdisk -l命令将会列出磁盘名称、分区数量、分区表类型、磁盘识别代号、分区 ID 和分区类型。

$ fdisk -l

Disk /dev/vda: 53.7 GB, 53687091200 bytes, 104857600 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: 0xc52ba00d

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1              63   104857566    52428752   83  Linux

Disk /dev/vdb: 214.7 GB, 214748364800 bytes, 419430400 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
# linux # 工具
Linux常用工具之软件安装
Linux常用工具之网络管理
  • 文章目录
  • 站点概览
lw‘Blogs

lw‘Blogs

自信人生二百年,会当水击三千里

80 日志
8 分类
40 标签
RSS
Github E-mail
Creative Commons
© 2025 京ICP备2022025426号-1