|
|
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。
% E' ?: g, x; h& Y7 P" u" O7 i6 q4 }* I! f' H. P
df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。1 N9 u, H) D x& i1 [0 M
du可以查看文件及文件夹的大小。
2 ^- b8 V0 U- r8 ~6 c5 b4 B" `* e1 R$ F9 Y
两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。
) m F6 J6 V* W6 p& h2 g2 X4 ~$ B4 W, U: H
下面分别简要介绍. Q0 s& ]( @5 K% Y9 V& q8 r( r) @
4 ~( U- n% _5 W1 X8 x) R df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:5 Z* f0 |8 ?7 e" g* e$ @
5 G8 |% B M& C* v以下是代码片段:
6 ~2 z, M6 r6 u, y5 A* N( b1 h0 N1 l, `
[yayug@yayu ~]$ df -h) q4 _ q% ^9 T4 Q% u4 J
Filesystem Size Used Avail Use% Mounted on
( `# }+ c# ~% ~6 t/dev/sda1 3.9G 300M 3.4G 8% /
# E5 l$ r; w8 K" `4 r p) H6 V/dev/sda7 100G 188M 95G 1% /data0 `2 C- o2 r4 _, B) f
/dev/sdb1 133G 80G 47G 64% /data1
) _) ^3 T# N9 c- V; X: i9 {, q/dev/sda6 7.8G 218M 7.2G 3% /var
2 i/ j1 K# N; K3 m9 h# J4 L, Y4 y/dev/sda5 7.8G 166M 7.2G 3% /tmp
- _8 T' C' V* Q' h/dev/sda3 9.7G 2.5G 6.8G 27% /usr
+ m; V8 L! F W& @tmpfs 2.0G 0 2.0G 0% /dev/shm
* ?# t2 Q' a6 D8 P6 {0 V1 N# W
5 @; e$ w: O! T# a: P9 R 参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
2 c& X3 B# s# z* Q/ L" j7 _7 F( U" W4 N" N' H4 T: p
上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。
* s; ~" @4 h6 z( K, k* B; U; @, ], Q# S( U* D' N
接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
7 g' h3 x) R) r* _( ^) i* F! U! [, Z1 o; w; M, P* d
du:查询文件或文件夹的磁盘使用空间
9 X# [6 O' @! @/ j$ o# | L" f8 Z% F0 | m7 A A2 D
如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.5 ?: A3 Q( E5 V, H! W, X4 s( H
" Z' ?( x- J9 n6 ?7 P 提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
+ w: t; F% W! [' t. i7 j* [0 r/ N, j$ U
以下是代码片段:
+ U( l! r5 e0 V- G0 {& o" ^2 K j7 s ^* Q
[root@bsso yayu]# du -h --max-depth=1 work/testing
" {9 s x: Z4 y6 @% t/ J( {- k, @) r27M work/testing/logs9 ~3 l9 u4 t9 N! n) x9 N
35M work/testing
! t0 u, r& P8 |, H# p& h+ q
& x X8 h; ]. T) N X[root@bsso yayu]# du -h --max-depth=1 work/testing/*% m) K% V: U1 t; `
8.0K work/testing/func.php
4 y( d% n1 u5 ^+ @) u5 l) T1 k27M work/testing/logs5 l3 ? J1 x0 V. N3 P
8.1M work/testing/nohup.out% r: R$ X7 b0 c% u9 l: P" Y+ d0 e
8.0K work/testing/testing_c.php
( i" M$ B/ C! F) k* l/ u12K work/testing/testing_func_reg.php. _5 L4 D- Y; T7 l
8.0K work/testing/testing_get.php
5 t. E8 l7 O( }$ X: j7 [. N8.0K work/testing/testing_g.php; m9 V" u# j( K6 t' ?+ C9 Y6 i
8.0K work/testing/var.php
% ?' L, l& `( R2 x- y, f; G$ A
( ^5 [( o$ b8 H5 S" `[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
9 A$ Y1 z* x8 @/ \9 t U! o27M work/testing/logs/8 d" d" c) A3 o; x
1 O/ N. M7 D+ L3 C
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
3 }7 I1 x, R K8 N; V$ S1 _/ Z24K work/testing/logs/errdate.log_show.log
* s- W6 i2 I1 D2 t9 m7 C7 T* Z8.0K work/testing/logs/pertime_show.log
6 C) @! h, m! }* n. R# e2 A: i5 s27M work/testing/logs/show.log# ?7 f$ I( s. s. u& L3 \0 R' W. D
1 _: K+ G" y X! } |
|