|
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。
R/ ^( X4 Z p7 ~
7 I& t2 f# x% N/ {: H* D; o df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
l5 t% |$ W! ]% y du可以查看文件及文件夹的大小。/ _& E- \) B4 L4 K- I1 d
/ ~; W9 M/ i# [$ w; e# e
两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。3 a8 j) s! e$ i; o
# q( v3 n7 E I6 G5 e e" u 下面分别简要介绍
9 Y9 p- v! f3 p' d# ~
4 H6 v0 k) J- s; y) u df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:
* B3 j* c+ g0 P0 Z2 L- n9 m, T* E
( D6 L- R9 N" G4 v以下是代码片段:* z' E; _# [4 r0 N; g
% }" P( ^# h& k! M6 F3 `) D0 g
[yayug@yayu ~]$ df -h* [2 t" U& f0 }) }/ I& q
Filesystem Size Used Avail Use% Mounted on; n1 m& i, g" o! V. u
/dev/sda1 3.9G 300M 3.4G 8% /
6 a! E. E" x: k0 X5 h8 h ]/dev/sda7 100G 188M 95G 1% /data0
8 Z$ c8 m6 p2 p0 Y( |, V2 J/dev/sdb1 133G 80G 47G 64% /data1, X8 ?3 Z$ F/ ^. S+ s: C, t
/dev/sda6 7.8G 218M 7.2G 3% /var0 X7 S) y y( Q
/dev/sda5 7.8G 166M 7.2G 3% /tmp6 \. a" S1 d" u: V8 q6 n
/dev/sda3 9.7G 2.5G 6.8G 27% /usr3 [+ P: V( w& |* `0 b
tmpfs 2.0G 0 2.0G 0% /dev/shm: r# F7 [+ G" W. W: v
) s- p" f# e0 m; ?" V: F6 ~# R5 M 参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
. k8 k' H2 `1 f8 k+ w3 K; ^- a
S2 ?* Y+ B! N! a% W5 ], `+ d 上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。
; Q5 J! e1 L' D! ~$ k9 d9 G
& Z: P$ p. o' v1 T$ p% r4 g 接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。' C% }5 b- o/ a T1 m
z9 |9 \8 X9 h, i# Y du:查询文件或文件夹的磁盘使用空间
4 f! T% ~: ?, U: K; e& F8 |" p' Z- d; P, {- Y6 ?- q; ?, W: r% G. c8 n" U) @
如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小. i: V9 G, I% p4 j$ Q" N, t/ u
/ s7 S$ ^9 c% |+ }$ y
提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
8 {9 N3 x$ T4 W7 l+ \1 }; G; q7 x+ w/ }$ S. }8 z; l
以下是代码片段:( z4 c5 i& K5 n3 p+ Q+ G
, ?( m& W/ L0 a* u- ~- M; T( m' A9 q[root@bsso yayu]# du -h --max-depth=1 work/testing
% u6 w2 M% w$ Y4 [' f7 M27M work/testing/logs. o8 M# M, U% \7 a
35M work/testing
' N" O6 s, `! N! J0 I) D! |. A
2 E, P' }- u4 [( a! Z[root@bsso yayu]# du -h --max-depth=1 work/testing/*# z; j3 [/ ^1 s6 [; ?
8.0K work/testing/func.php# Y; D) T. k8 y3 H+ _, x
27M work/testing/logs- ^9 u7 ?& k2 `" r! B
8.1M work/testing/nohup.out0 P& d* e% R" G& l: i. p( ?& c) m
8.0K work/testing/testing_c.php, R* u/ I) j+ H
12K work/testing/testing_func_reg.php6 S% g; @: X% ?' T3 R
8.0K work/testing/testing_get.php
+ A5 N7 h2 j/ Q8.0K work/testing/testing_g.php; P! L- C1 f/ r5 R! Q9 _
8.0K work/testing/var.php
; A8 h5 r1 ~4 u3 g8 G4 t- }, n; k# i: w) B% ]) Q
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
: z3 l/ W. j- _- v27M work/testing/logs/2 x' F2 z$ e4 Y, O3 z# b
) A3 o$ O. G& z( v9 a
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*( d% M5 f8 e2 T( I& D% M
24K work/testing/logs/errdate.log_show.log
; G- L; ^2 q: M8 }1 k( T8.0K work/testing/logs/pertime_show.log
% u2 X) o. }* y! B# B. w, ?! v) z27M work/testing/logs/show.log/ M# u4 v- y, j/ D
6 O2 V1 ^! t( v4 i |
|