|
|
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。2 v; @5 _5 q. w& w8 I0 d# M
/ n. c" u8 @) w6 V
df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
: c/ o" A# d2 \6 n9 | du可以查看文件及文件夹的大小。
! I6 ^1 J/ Z" X: _6 f- H2 |4 @6 i# ^* d
两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。
" y: m4 \5 k$ L& W
) |( F$ Q2 L# j" S" `" P, l. n2 K 下面分别简要介绍+ O c4 `- g6 K2 Y( l
7 ^. l3 W6 C& G2 v df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:" [# m0 L- i% m
7 x( @# `8 `- V% O/ u# g! p5 b以下是代码片段:
/ a% x7 s! X( f& R6 a) }; `' C+ S+ K; J0 K( |8 L% p7 c
[yayug@yayu ~]$ df -h
& |$ v6 W v. u. ]1 L. @ G6 oFilesystem Size Used Avail Use% Mounted on
% M. f1 A- W0 a. Z5 H* a/dev/sda1 3.9G 300M 3.4G 8% /
- I" `! f @: J3 t# C! D/dev/sda7 100G 188M 95G 1% /data0/ Y0 E/ Y( p) b3 k
/dev/sdb1 133G 80G 47G 64% /data1
9 A7 x% P( q6 b3 \1 j# O y/dev/sda6 7.8G 218M 7.2G 3% /var: I2 q0 [1 |4 ]( k4 }* n- V
/dev/sda5 7.8G 166M 7.2G 3% /tmp2 q" U3 r4 D' j6 L* Z7 r
/dev/sda3 9.7G 2.5G 6.8G 27% /usr
" A7 m$ E4 Z! U q; utmpfs 2.0G 0 2.0G 0% /dev/shm0 ^0 q8 r7 p0 p- W$ i" \
' S) k' x+ s. M/ }7 C, t$ L; V; x 参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
5 m3 N3 F0 @& z* y: d _" [ p% D1 V( \0 d1 L' _& g, v0 ^
上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。
) k# S) e& X' }3 \5 D
4 P4 e! m! c0 u4 E 接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
/ O$ h" U, F9 I. ?! n( e7 M
) n/ _+ y+ B6 }7 w9 C3 v du:查询文件或文件夹的磁盘使用空间
+ h6 P1 A) @/ Z0 {9 z: ~- r) c& O6 ?: @ }
如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.
2 C8 `5 [/ P- i+ J- s( I
# C3 V& R d* \4 ^% ^. ` 提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
( g0 n2 p9 n! v* z& H/ Q
$ f/ L6 N8 T, Z以下是代码片段:% ?8 _/ {' ]4 r5 X" `* H3 g
- M4 |8 i2 B3 ^8 }% A% _2 ~
[root@bsso yayu]# du -h --max-depth=1 work/testing& }% j4 `5 R$ V
27M work/testing/logs; O2 R- z4 j2 v ~2 A
35M work/testing
. m; x) ]. o% k8 {2 \4 E8 L( T! g2 c" P' w6 ^2 u. ]! _4 g; w
[root@bsso yayu]# du -h --max-depth=1 work/testing/*" v$ F8 c# a& q" v
8.0K work/testing/func.php& i: p' H7 S+ b
27M work/testing/logs: X+ ?# H5 S3 F n/ C% @( E
8.1M work/testing/nohup.out* Z' W! ^# n5 ~- f! c0 P" u
8.0K work/testing/testing_c.php3 d0 E3 }. ^& }9 {8 [2 v2 Q9 ?
12K work/testing/testing_func_reg.php, n6 r- ~) Z, k8 N& W( i1 {
8.0K work/testing/testing_get.php7 s+ y, p) `3 j0 X9 T! [3 q& R( `3 F3 M, @
8.0K work/testing/testing_g.php
8 {' q0 W: u2 T0 ~/ z( A8.0K work/testing/var.php
5 C& V* ? W. T8 R7 ]. Z! @9 Y0 C% t% T/ U r
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/4 [0 p* q: Y& X$ d) `8 ]9 ^
27M work/testing/logs/
" a2 T% H9 \$ L) d+ \$ w; p- z8 }+ ^; s: H
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
& u1 Z# p% O& V5 r% u! m! f) s' d2 b24K work/testing/logs/errdate.log_show.log( y F5 |5 p M4 A0 I1 F3 u5 U0 L
8.0K work/testing/logs/pertime_show.log. ~0 _* F' W* T
27M work/testing/logs/show.log
5 _7 {% X! H* K
8 I* ~) E5 C% s% Z V' j |
|