说到磁盘监控,很多管理员的第一反应就是 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 清单 2. 使用带 -k 选项的 df 命令
|
有些版本还支持更灵活的块大小,比如 -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 |
块越大,细节越粗,但对于快速扫一眼超大规模磁盘来说,这种粗颗粒度的信息反而更实用。另一个需要注意的点: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 这个名字其实就是 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 下一页 阅读全文
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述