游乐游手机版
首页/系统平台/文章详情

UNIX系统下磁盘空间与使用情况监控

时间:2026-06-18 07:53
说到磁盘监控,很多系统管理员第一时间想到的就是 df。这个工具就像管理员手中的瑞士军刀,简单直接却功能强大。不过,你真的了解 df 的全部潜力吗?本系列文章旨在逐一剖析这些日常管理利器,分享实战中积累的命令行技巧与脚本配合方法。唯一的目标是:让异构环境下的系统管理更加顺畅、高效。 入门:使用 df

说到磁盘监控,很多系统管理员第一时间想到的就是 df。这个工具就像管理员手中的瑞士军刀,简单直接却功能强大。不过,你真的了解 df 的全部潜力吗?本系列文章旨在逐一剖析这些日常管理利器,分享实战中积累的命令行技巧与脚本配合方法。唯一的目标是:让异构环境下的系统管理更加顺畅、高效。

入门:使用 df

磁盘空间监控是每位 UNIX 管理员的必修课。而 df 工具就像一张即时快照,将所有文件系统的存储状况一览无余地呈现出来。不同 UNIX 发行版的默认输出格式各异,但核心信息始终不变——磁盘总容量、已用空间、可用空间以及挂载点。例如,基于 BSD 的 Mac OS X 默认输出如下:

清单 1. Mac OS X 的缺省磁盘空间信息

Filesystem    512-blocks      Used     A vail Capacity  Mounted on
/dev/disk0s2   268435456 119741344 148182112    45%    /
devfs                195       195         0   100%    /dev
fdesc                  2         2         0   100%    /dev
             1024      1024         0   100%    /.vol

清单 2. 使用带 -k 选项的 df 命令

$ df -k
Filesystem    1K-blocks      Used     A vail Capacity  Mounted on
/dev/disk0s2  134217728  59870704  74091024    45%    /
devfs                97        97         0   100%    /dev
fdesc                 1         1         0   100%    /dev
             512       512         0   100%    /.vol
/dev/disk0s3   21737260   3625724  18111536    17%    /Volumes/Untitled

某些版本还支持更灵活的块大小单位,例如 -m 显示兆字节、-g 显示千兆字节。清单 3 展示了千兆字节的输出效果:

清单 3. 使用带 -g 选项的 df 命令

$ df -g
Filesystem    1G-blocks Used A vail Capacity  Mounted on
/dev/disk0s2        128   57    70    45%    /
devfs                 0    0     0   100%    /dev
fdesc                 0    0     0   100%    /dev
               0    0     0   100%    /.vol
/dev/disk0s3         20    3    17    17%    /Volumes/Untitled

块越大,细节越粗糙,但对于快速概览超大容量磁盘来说,这种粗粒度信息反而更加实用。另一个值得关注的点:Solaris 的 df 默认会输出空闲块和文件节点数量。许多文件系统对最大文件数有硬性限制(虽然通常很难触及),但理论上存在一种情况——磁盘仍有剩余空间,文件节点却已耗尽,导致无法创建新文件。清单 4 展示了 Solaris 的默认输出:

清单 4. Solaris 的缺省输出

$ df
/                  (/dev/dsk/c0t0d0s0 ):14877208 blocks   914042 files
/devices           (/devices          ):       0 blocks        0 files
/system/contract   (ctfs              ):       0 blocks 2147483618 files
/proc              (proc              ):       0 blocks    16109 files
/etc/mnttab        (mnttab            ):       0 blocks        0 files
/etc/svc/volatile  (swap              ): 5737216 blocks   147177 files
/system/object     (objfs             ):       0 blocks 2147483532 files
/usr               (/dev/dsk/c0t0d0s3 ): 9076010 blocks   863695 files
/dev/fd            (fd                ):       0 blocks        0 files
/var               (/dev/dsk/c0t0d0s4 ): 8110796 blocks   483714 files
/tmp               (swap              ): 5737216 blocks   147177 files
/var/run           (swap              ): 5737216 blocks   147177 files
/export/home       (/dev/dsk/c0t0d0s7 ):69362510 blocks  4272812 files

加上 -k 选项后,输出会转变为更熟悉的摘要格式(清单 5):

清单 5. 使用 -k 选项

$ df -k
Filesystem            kbytes    used   a vail capacity  Mounted on
/dev/dsk/c0t0d0s0    7644629  206026 7362157     3%    /
/devices                   0       0       0     0%    /devices
ctfs                       0       0       0     0%    /system/contract
proc                       0       0       0     0%    /proc
mnttab                     0       0       0     0%    /etc/mnttab
swap                 2868600    1016 2867584     1%    /etc/svc/volatile
objfs                      0       0       0     0%    /system/object
/dev/dsk/c0t0d0s3    8261237 3723232 4455393    46%    /usr
fd                         0       0       0     0%    /dev/fd
/dev/dsk/c0t0d0s4    4130238   74849 4014087     2%    /var
swap                 2867584       0 2867584     0%    /tmp
swap                 2867624      40 2867584     1%    /var/run
/dev/dsk/c0t0d0s7    35611388  930133 34325142     3%    /export/home

几乎所有 df 变种都允许传入一个目录路径,然后仅显示包含该路径的文件系统信息。例如查看根文件系统:

$ df -k /
Filesystem            kbytes    used   a vail capacity  Mounted on
/dev/dsk/c0t0d0s0    7644629  206026 7362157     3%    /

或者查看某个用户的 home 目录:

$ df -k ~mc
Filesystem             kbytes    used    a vail capacity  Mounted on
/dev/dsk/c0t0d0s7    35611388  930133 34325142     3%    /export/home

使用 df 的输出

df 这个名称实际上是 disk free 的缩写,输出内容正是磁盘的剩余空间。将上面任意一行拆开来看,有几个关键列值得重点关注:

Filesystem             kbytes    used    a vail capacity  Mounted on
/dev/dsk/c0t0d0s7    35611388  930133 34325142     3%    /export/home

第一列(通常标注了块大小单位)显示磁盘总容量;used 是已用块数;a vail 是剩余可用块数;而 capacity 则是已用空间百分比——这个百分比本身就能让你对磁盘紧张程度有一个直观的判断。

默认情况下,UNIX 文件系统会为普通用户保留 90% 的空间用于数据存放,剩下 10% 预留给 root 作为紧急维护之用。一旦普通用户的写入量超过这 90% 的限制,系统就会提示“磁盘空间不足”。这预留的 10% 是管理员最后的应急手段:可以利用这部分空间就地创建临时备份、压缩已有数据,而无需依赖其他文件系统。当然,你可以通过 tunefs 或者在创建文件系统时调整这个保留比例。对于大容量磁盘来说,10% 的预留可能意味着几个 GB 甚至几十 GB 的“闲置”空间。业界常见的做法是至少保留 1%,这样在磁盘彻底写满之前还能留有一定的缓冲余地。不过,在动手调整比例之前——尤其是当磁盘使用率已经较高的时候——你得先搞清楚,究竟是谁占用了这些空间。

上一页1 2 3 4 下一页 阅读全文

来源:https://www.jb51.net/os/Unix/1563.html
上一篇Unix系统中应避免使用的危险命令 下一篇笔记本安装FreeBSD实用小技巧
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
微软详解Win11时间点还原 默认每24小时创建恢复点
系统平台 · 2026-06-30

微软详解Win11时间点还原 默认每24小时创建恢复点

微软今日推送了最新的 6 月可选更新,并发布博客详细解读了 Win11 全新的“时间点还原”(Point-in-time restore)功能——这一功能本质上是对系统恢复体验的一次全面升级,旨在让用户更轻松地应对电脑故障。 微软表示,面向 Windows 11 客户端用户的“时间点还原”功能现已正

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验
系统平台 · 2026-06-30

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验

微软今天推送了Windows 11 26H1设备的6月可选更新KB5095091,安装完成后系统版本号会升级到Build 28000 2340。值得一提的是,这次更新并非面向所有设备,而是专门为搭载高通骁龙X2系列芯片的机型准备的——包括骁龙X2 Plus、X2 Elite和X2 Elite Ext

Win11六月可选更新KB5095093修复回收站弹窗异常
系统平台 · 2026-06-30

Win11六月可选更新KB5095093修复回收站弹窗异常

微软已悄然推送Windows 11六月可选更新,编号KB5095093。本次更新覆盖两个版本:24H2用户安装后版本号升级至Build 26100 8737,而25H2用户则更新至Build 26200 8737。 本次更新并非仅是小修小补,而是带来了多项实质性新功能。下面我们就来详细解析这些更新内

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞
系统平台 · 2026-06-30

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞

科技媒体 Cult of Mac 昨日(6月23日)发布博文指出,苹果在 macOS 27 Beta 2 更新中悄然封堵了一个此前可用的后门——用户曾能通过一条终端命令绕过候补名单,直接启用新版 Siri AI,如今这一方法已失效。 简要回顾一下:在 macOS 27 Beta 1 阶段,只需在 M

微软加速Win11 25H2推送 覆盖所有符合条件家用PC
系统平台 · 2026-06-30

微软加速Win11 25H2推送 覆盖所有符合条件家用PC

近日(6月23日),科技媒体 Windows Latest 发布了一则值得关注的动态:微软已进一步扩大 Windows 11 25H2 的推送范围,所有满足硬件要求、且不受 IT 部门管理的家庭版和专业版设备,现在均可顺利接收本次更新。 此次升级有一个显著特点——采用“启用包”(eKB)方式进行推送