| 
 | 
 
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。 
5 ^" f' X; Z' S- K. N% u4 U8 D 
8 D; z5 u- i( \% b: _/ V  j0 a    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。 
* k1 o  s) ?: r, l    du可以查看文件及文件夹的大小。$ `% u+ ~1 e7 z7 `' x, p( T 
 
- H/ B3 n6 `% X$ Q    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。4 f$ B6 g* S9 n1 G 
 
& _- Z; g2 U: f. s/ Z/ P8 m5 {( T- ~  下面分别简要介绍 
$ N. r. K# u3 U: X  y3 S4 e) |+ [& ` 
    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子: 
' ]! `4 U+ r3 J: |, I) X: y/ R" n% u5 C  ?4 | 
以下是代码片段: 
1 R, M8 k, z# r5 w; K% c" w7 z- A  L1 y. v) o: c  Q 
[yayug@yayu ~]$ df -h 
/ S1 x' W" z; h; E3 I/ F; ZFilesystem            Size  Used Avail Use% Mounted on 
! t* ~8 _1 {( D/dev/sda1             3.9G  300M  3.4G   8% /. X( `1 h' A. C( p& g2 ? 
/dev/sda7             100G  188M   95G   1% /data0, x( F& n; b: a8 K3 c* Y 
/dev/sdb1             133G   80G   47G  64% /data1$ q4 }( X& D1 B) m4 M. ` 
/dev/sda6             7.8G  218M  7.2G   3% /var9 P% v  L, F7 H% \- V 
/dev/sda5             7.8G  166M  7.2G   3% /tmp1 L) y/ o+ |  K+ ?* z  d1 R 
/dev/sda3             9.7G  2.5G  6.8G  27% /usr' V) \$ K2 Z; ~) i( @/ l 
tmpfs                 2.0G     0  2.0G   0% /dev/shm8 p9 Z' ^6 Z9 h3 |+ q1 ` 
' r: O! I+ C/ W 
 参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。 
+ N8 B( v4 {4 g7 u# w. u- E1 M2 B( K6 ?! v- C1 k 
    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。$ @# N% g& {+ s9 C, l  T5 c0 W 
 
: `6 {+ T* g/ J- V7 m) {9 O" a    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。 
2 D# x: u/ r5 M% Q 
( l/ u% S" v/ @    du:查询文件或文件夹的磁盘使用空间, i+ \7 J- q3 ^4 v3 M0 Q 
! I6 p/ @) f& z0 l( `- c3 R 
    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.8 f2 t" ~/ q) `* W9 q$ } 
0 J. e  N( R3 k  m( A: Y" T 
    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。 
* ^1 k1 K% @7 _8 S/ L6 T 
4 x' ^" A& D+ f( v以下是代码片段:8 m/ V0 k' [( B$ q9 O 
 
' |; y0 j$ g6 Q& V[root@bsso yayu]# du -h --max-depth=1 work/testing 
( [5 M6 Q7 {- L8 J. e* |8 F27M     work/testing/logs 
8 S# {8 C1 R. V, @35M     work/testing 
) \# ~6 z; D9 B5 ~7 ^  F 
% J+ n7 w$ j9 a" ~% }  Z6 ][root@bsso yayu]# du -h --max-depth=1 work/testing/*+ s0 [! z, G  p, b/ b 
8.0K    work/testing/func.php 
! K2 Y/ ?/ |* R( n% Z& Q3 c27M     work/testing/logs 
! t$ f6 e1 v" x* E# ?0 @7 ~: {0 T* Z' `8.1M    work/testing/nohup.out4 D  ^% J% z* {" l" {6 ^- L 
8.0K    work/testing/testing_c.php 
8 z/ F3 d6 T% l. a12K     work/testing/testing_func_reg.php1 {! E: _2 z. O5 C 
8.0K    work/testing/testing_get.php 
& l7 R) F4 a9 m; f5 j, r# f8.0K    work/testing/testing_g.php 
3 T( i) B9 K2 z9 E% }8.0K    work/testing/var.php 
8 b0 k% H7 B1 p1 p' K: m4 L 
# w% p$ t3 r+ B$ b[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/ 
4 J! {1 M  Z  W: W27M     work/testing/logs/$ C/ t( P+ s7 d3 z# R: p 
; e6 \$ b! h! m% V: p' B% l 
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/** O% k. `$ X% O 
24K     work/testing/logs/errdate.log_show.log 
3 H  i# I& B$ J# p" Q  L8.0K    work/testing/logs/pertime_show.log! O: e% o0 w' i8 ]8 J 
27M     work/testing/logs/show.log 
3 N6 R: C8 b1 O: |' Z; X 
' P% \# ^% Z: f5 T! J! j9 J |   
 
 
 
 |