|
|
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。+ n" p" g* o3 _: h9 q9 P/ n/ C
9 O& r2 o1 U. u' f
df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。- e2 w4 ?, `% S+ k" i4 e
du可以查看文件及文件夹的大小。
/ h, S7 ~; F2 w) X8 X1 t# U( E3 T2 J( ?
两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。
h4 ?* h, ~4 p7 N+ X) D8 @0 g: y @- ~
下面分别简要介绍
1 H7 I1 L* ~! Q, ~$ H/ }/ A; f7 F' u/ O+ ^
df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:
' M0 C1 g8 l6 h9 V* y( k# x1 i
, j/ z; ?7 t7 S6 |% M以下是代码片段:
2 \' w) n e+ {2 H8 U7 g' k$ ]0 P/ A# z% }. A$ g
[yayug@yayu ~]$ df -h3 t P3 L) I7 j* y
Filesystem Size Used Avail Use% Mounted on
4 l- Y* T X0 k+ i+ z/dev/sda1 3.9G 300M 3.4G 8% /
; B3 e- v& W7 c O: o/dev/sda7 100G 188M 95G 1% /data0% P9 `( z( b. T: D. _ f
/dev/sdb1 133G 80G 47G 64% /data1
! H4 }$ d2 i4 S/dev/sda6 7.8G 218M 7.2G 3% /var9 j% A: k: ]' G- V: I2 t3 c
/dev/sda5 7.8G 166M 7.2G 3% /tmp# A: U1 d4 k+ e+ r* w
/dev/sda3 9.7G 2.5G 6.8G 27% /usr, ]' U- @0 E$ _& b. p" l
tmpfs 2.0G 0 2.0G 0% /dev/shm
9 P! V9 j. m2 R, \ J7 J( v& C( W8 i6 |2 d. P% E
参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。# u. a3 n' K2 J4 t" ~: }
9 m' a0 \* ~2 `( \0 r% @9 C/ Y
上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。
+ k( [. t7 E& G* u. Z, C/ E
, k. C( h, T. E* y! i: R: ~; r4 n 接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。' K5 a5 ]$ @5 ]9 g( B' q* g- e
, l) S- d: u" \5 i* A5 n' E' Q! }4 S du:查询文件或文件夹的磁盘使用空间0 M3 ~* P+ d0 r0 t
; Q) m, m5 j& L: k( T/ u7 C
如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.# j% n" [7 Z4 t) _( v- l) ]" A4 U- I
9 @* B: J# D) e* ? 提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
* J/ z: U- {) Q* O$ D) R0 S! G- q0 K6 r: R5 `. _+ }' _
以下是代码片段:! }( G- j/ X g& X4 ?5 z* i
$ e7 @. L9 @* e
[root@bsso yayu]# du -h --max-depth=1 work/testing
1 {( h; a2 P) E* l0 O% K27M work/testing/logs X) K6 w7 u3 [1 {2 r
35M work/testing
5 Z# Z$ C5 u) z6 O' t" Y' P
0 H& B+ G d7 I1 F C[root@bsso yayu]# du -h --max-depth=1 work/testing/*
5 e* V$ I+ L* K! l) ?8.0K work/testing/func.php* Y8 g, D& a; x/ u
27M work/testing/logs' n( F" W4 O% g) z. x0 t7 U6 b
8.1M work/testing/nohup.out: n& ~. z# b; C1 \4 ]
8.0K work/testing/testing_c.php
# m) j3 |# n" {; z+ r12K work/testing/testing_func_reg.php
: K6 v0 B) W8 u0 E' }+ \8.0K work/testing/testing_get.php8 ^3 i, k2 J2 W+ y0 ^( ^( H
8.0K work/testing/testing_g.php
' X! G- T# I9 X( a3 _9 s& U1 j4 C1 X8.0K work/testing/var.php1 H! o0 j$ I. ~+ @% F
. l% ^; {8 c$ u% k n. t( k
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs// v5 `( c9 j5 r7 R, E& j
27M work/testing/logs/( G, j3 C1 `! K, O
, S+ h3 g" B- V2 a* U; _
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*) h! `4 }* P; [+ N5 b
24K work/testing/logs/errdate.log_show.log
' m+ J$ L4 t# z5 b5 A8.0K work/testing/logs/pertime_show.log
+ F% ]( l1 e: L: i: C9 i27M work/testing/logs/show.log
2 R5 {' `+ `; _& P. H$ u' s! S5 |% M
|
|