|
|
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。0 W0 U* C0 }/ I q
" P) W! x6 E# l5 X1 ~ df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
) U l* s$ @5 [' K9 s- z9 N0 c du可以查看文件及文件夹的大小。. K( `# ]% Z" C2 O' J+ |) n
- R6 k: O% M2 t ^7 U 两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。 |" V# q; y1 `4 ~9 O& y; O
" l6 S) g! u- e- {, D* Z* J
下面分别简要介绍
4 W5 y/ v+ x4 d' i4 q, x& I6 w
df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:5 o0 u) [# O: J8 W W. R
( N4 I" o( L9 M# g3 \: O0 `; Z2 D
以下是代码片段:
; B# n/ `$ v$ ^" B: L! M4 V8 P1 V6 @
[yayug@yayu ~]$ df -h: t; r$ p, ~& I0 P/ ]7 k
Filesystem Size Used Avail Use% Mounted on
+ R, u! {7 k' G" _7 V0 ^- y3 Q/dev/sda1 3.9G 300M 3.4G 8% /( ?- ^3 c% P4 e/ _+ i
/dev/sda7 100G 188M 95G 1% /data0" L' L8 W J( [3 e4 H' h, \
/dev/sdb1 133G 80G 47G 64% /data1
" _- \" P1 {6 y( L+ {$ d& [/dev/sda6 7.8G 218M 7.2G 3% /var: Q2 g7 { d, `6 G* t# h- Y/ Y
/dev/sda5 7.8G 166M 7.2G 3% /tmp Q+ L" h/ v- y# i5 L4 R
/dev/sda3 9.7G 2.5G 6.8G 27% /usr
# k6 e! t" `+ q8 V5 _tmpfs 2.0G 0 2.0G 0% /dev/shm
3 p6 j% g0 }5 Q: D: |8 I/ T4 m0 O+ C% v$ i9 K, m, L# Y6 i
参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
( ^0 E/ I8 I$ y* t% Q/ F( t
2 ^5 R* M2 ?& ~" [' l; s 上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。8 g# s# u* _ j; l0 ?# E1 v, @
" W( y+ ]' Y; O. [" I! I
接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。3 Y& ~. E: E( v% ~4 w
/ _ R: ]3 @1 W$ T& x du:查询文件或文件夹的磁盘使用空间
; }- A* M# p6 E( }' F0 N( z: X, o
; D9 W" G8 ?# k. T3 N/ k& B) m+ S 如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.
- {7 l0 ~# u! x, T F! D t+ e! M5 ^7 e* V4 }
提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
1 Y& }; k6 }- {/ f0 o1 X3 V5 k4 m% |+ k& Y; B2 a
以下是代码片段:
6 h& B# J4 ^. V, H( v. \
/ l) I7 _' L$ C7 x# L[root@bsso yayu]# du -h --max-depth=1 work/testing
7 {- m. F+ U3 F! X! I% j9 w" P27M work/testing/logs
$ I8 W6 c I4 R( x35M work/testing" ?0 q/ F: x7 G$ f( i! R. N
- G: m7 M6 I3 F/ M& Q5 l: V, s0 Q[root@bsso yayu]# du -h --max-depth=1 work/testing/*
! \) n P2 t3 H8.0K work/testing/func.php( [0 N4 Y/ E8 N0 }
27M work/testing/logs P( r' D% n2 g" V
8.1M work/testing/nohup.out
2 r. V. e* z( V" w8.0K work/testing/testing_c.php! X! V4 [0 q9 I- y* x& l& X1 ~
12K work/testing/testing_func_reg.php
7 A4 a, W- e% `/ d8.0K work/testing/testing_get.php
3 E5 F( V9 G! ~6 q' S/ s8.0K work/testing/testing_g.php
/ q) S N \$ ?' r5 O$ G3 x- m- Q8.0K work/testing/var.php
) j5 \# o2 P5 \& E; I. z6 {7 V& E- _% d" c! [ r. j; j/ l4 y% Z
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
, ?, T' h6 B* s7 o+ x27M work/testing/logs/
# m1 l5 ?7 C. v2 g) d+ M
[3 V# r% |1 [3 [2 f0 V; E[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
1 G, b. o+ S& R24K work/testing/logs/errdate.log_show.log
' |6 S+ l$ A6 q; I, Z. |8.0K work/testing/logs/pertime_show.log, C& L% M" ~) n+ w0 w9 u
27M work/testing/logs/show.log3 l$ p% v9 d" v! `+ p9 l
, \, V7 W+ T( o |
|