首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 系统运维 >

liunx磁盘空间治理,查看文件和文件夹大小

2012-11-23 
liunx磁盘空间管理,查看文件和文件夹大小当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常

liunx磁盘空间管理,查看文件和文件夹大小
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。
df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:
[yayug@yayu ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 3.9G 300M 3.4G 8% /
/dev/sda7 100G 188M 95G 1% /data0
/dev/sdb1 133G 80G 47G 64% /data1
/dev/sda6 7.8G 218M 7.2G 3% /var
/dev/sda5 7.8G 166M 7.2G 3% /tmp
/dev/sda3 9.7G 2.5G 6.8G 27% /usr
tmpfs 2.0G 0 2.0G 0% /dev/shm


df -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。   

df -a  显示所有分区包括大小为0 的分区
df -T  显示分区类型EXT2 或EXT3 等

du:查询文件或文件夹的磁盘使用空间语 法
  du [-abcDhHklmsSx] [-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>] [--max-depth=<目录层数>][--help][--version][目录或文件]

  常用参数:

        不带参数会显示当前目录及级联子目录的大小

        -s或–summarize 仅显示总计,即当前目录的大小
        -h或–human-readable 以K,M,G为单位,提高信息的可读性。

  -a或-all 为每个指定文件显示磁盘使用情况,或者为目录中每个文件显示各自磁盘使用情况。
  -b或-bytes 显示目录或文件大小时,以byte为单位。
  -c或–total 除了显示目录或文件的大小外,同时也显示所有目录或文件的总和。
  -D或–dereference-args 显示指定符号连接的源文件大小。
  -h或–human-readable 以K,M,G为单位,提高信息的可读性。
  -H或–si 与-h参数相同,但是K,M,G是以1000为换算单位,而不是以1024为换算单位。
  -k或–kilobytes 以1024 bytes为单位。
  -l或–count-links 重复计算硬件连接的文件。
  -L<符号连接>或–dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
  -m或–megabytes 以1MB为单位。
  -s或–summarize 仅显示总计,即当前目录的大小。
  -S或–separate-dirs 显示每个目录的大小时,并不含其子目录的大小。
  -x或–one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
  -X<文件>或–exclude-from=<文件> 在<文件>指定目录或文件。
  –exclude=<目录或文件> 略过指定的目录或文件。
  –max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
  –help 显示帮助。

  –version 显示版本信息。


du命令使用示例
  1> 要显示一个目录树及其每个子树的磁盘使用情况
  du /home/linux
  这在/home/linux目录及其每个子目录中显示了磁盘块数。
  2> 要通过以1024字节为单位显示一个目录树及其每个子树的磁盘使用情况
  du -k /home/linux
  这在/home/linux目录及其每个子目录中显示了 1024 字节磁盘块数。
  3> 以MB为单位显示一个目录树及其每个子树的磁盘使用情况
  du -m /home/linux
  这在/home/linux目录及其每个子目录中显示了 MB 磁盘块数。
  4> 以GB为单位显示一个目录树及其每个子树的磁盘使用情况
  du -g /home/linux
  这在/home/linux目录及其每个子目录中显示了 GB 磁盘块数。
  5>查看当前目录下所有目录以及子目录的大小:
  du -h .
  “.”代表当前目录下。也可以换成一个明确的路径
  -h表示用K、M、G的人性化形式显示
  6>查看当前目录下user目录的大小,并不想看其他目录以及其子目录:
  du -sh user
  -s表示总结的意思,即只列出一个总结的值
  du -h –max-depth=0 user
  –max-depth=n表示只深入到第n层目录,此处设置为0,即表示不深入到子目录。
  7>列出user目录及其子目录下所有目录和文件的大小:
  du -ah user
  -a表示包括目录和文件
  8>列出当前目录中的目录名不包括xyz字符串的目录的大小:
  du -h –exclude=’*xyz*’
  9>想在一个屏幕下列出更多的关于user目录及子目录大小的信息:
  du -0h user
  -0(杠零)表示每列出一个目录的信息,不换行,而是直接输出下一个目录的信息。
  10>只显示一个目录树的全部磁盘使用情况
  du -s /home/linux
如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,
参数:--max-depth=,这是个极为有用的参数!注意使用“*”,可以得到文件的使用空间大小.
值得注意的是,看见一个针对du和df命令异同的文章:《du df 差异导致文件系统误报解决》。
du 统计文件大小相加
df 统计数据块使用情况
如果有一个进程在打开一个大文件的时候,这个大文件直接被rm 或者mv掉,则du会更新统计数值,df不会更新统计数值,还是认为空间没有释放。直到这个打开大文件的进程被Kill掉。
如此一来在定期删除 /var/spool/clientmqueue下面的文件时,如果没有杀掉其进程,那么空间一直没有释放。
使用下面的命令杀掉进程之后,系统恢复。

fuser -u /var/spool/clientmqueue 

待续:

查找大文件

热点排行