|
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。
U6 \# h4 x7 u+ G& f! U, q1 C' F: y( F! h: T
df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。6 p3 i3 x) A3 Y$ f
du可以查看文件及文件夹的大小。+ ?7 }4 q: t. `7 k, ~1 w: x4 E
d8 T4 n2 q( }; K5 g+ n1 x4 p$ U
两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。
0 ~8 h: \, \& h) b4 E9 _8 Z- |/ [3 n l+ j+ k2 f3 i
下面分别简要介绍2 G1 Z! n5 q5 y% k2 W0 J# b
0 }2 C* B2 L" P
df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:+ z+ ]+ E+ o/ w- L+ G& O' P
. v; u& r: N5 ^( J* h) z以下是代码片段:" U6 d8 u* p( f4 v; J# C: X* k( ?
& k9 h2 H7 b }! N; z2 d8 A$ b9 r
[yayug@yayu ~]$ df -h
+ h& G1 c! w6 ~/ IFilesystem Size Used Avail Use% Mounted on: V& n+ Y* n1 i2 h% O
/dev/sda1 3.9G 300M 3.4G 8% /+ e7 t8 I V* p9 A9 G
/dev/sda7 100G 188M 95G 1% /data0* V+ o. D. I# X6 w
/dev/sdb1 133G 80G 47G 64% /data1
1 X/ r! V0 L P) Y- s# G/dev/sda6 7.8G 218M 7.2G 3% /var/ P2 P1 M- f+ l# I. Z3 F
/dev/sda5 7.8G 166M 7.2G 3% /tmp
+ a& P9 o, v3 A/dev/sda3 9.7G 2.5G 6.8G 27% /usr8 K* J2 s& k: f1 W& N) w
tmpfs 2.0G 0 2.0G 0% /dev/shm
. }& A* C1 z* K T- K
6 c+ ^* A5 M1 b$ i; x0 g 参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
6 H6 \6 i4 D: U5 W. |* E/ N/ e! s! E& T6 j- \! |
上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。
, U% F: i) T2 N1 @; M* z" x' m9 c; n) i
接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
+ l+ D& b# S& }7 a) F* V
% ?3 N" n" j' B du:查询文件或文件夹的磁盘使用空间
* Y/ `( T' g1 |7 b( G9 S2 Q( c( ?) d3 J1 C
如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.9 b& W. P; c# p8 W9 V
0 R4 j" w3 ~3 {0 B$ ?" O& N/ w) m1 R! b
提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
' J/ J" N# M- M: G( b1 t0 o) ?. h/ l* ^+ b
以下是代码片段:
) G/ A; d, @. N. U
$ @) y" I5 n+ Y/ n& q H[root@bsso yayu]# du -h --max-depth=1 work/testing
4 b7 F8 s' N" B" X; L9 w27M work/testing/logs8 }* o0 `, B8 O! D! i6 S# F6 S/ j3 @
35M work/testing
: o+ u/ R+ g9 g. R5 U5 d$ u
7 F* T6 ]3 Z+ o0 B. V[root@bsso yayu]# du -h --max-depth=1 work/testing/*+ T, B# e3 ~. ^
8.0K work/testing/func.php; u3 Y- _) |3 X$ \" V$ r
27M work/testing/logs/ J- v* C% j x+ U
8.1M work/testing/nohup.out, F! c$ j2 I, u. n
8.0K work/testing/testing_c.php
$ ]9 W5 m- R5 a8 P12K work/testing/testing_func_reg.php: G; a9 _* [ q# r
8.0K work/testing/testing_get.php: y1 b+ d1 p, t3 a7 H4 c
8.0K work/testing/testing_g.php
1 c7 I" V) z, t0 U. ~8.0K work/testing/var.php8 E' \6 f/ C" L0 S2 K6 S
8 N8 B* N. s% F2 M" R8 r[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
5 ?7 e% D8 c1 `9 q9 S27M work/testing/logs/
5 c& Y6 |" N2 I2 q, W! {: L* ]( Q. i* e0 g1 b! Y, k
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*; @6 w- c, Z) H* B! S/ G
24K work/testing/logs/errdate.log_show.log
) [4 M; a* f8 R0 p7 g0 ~! v/ K8.0K work/testing/logs/pertime_show.log% ^, o2 V4 }3 b2 q# s
27M work/testing/logs/show.log
0 x- \1 G4 s6 c5 n2 }+ s4 d
' b; W5 j* O) N. }" k |
|