Linux磁盘空间分析及清理(df、du、rm)
1、df磁盘空间查看
df可以查看一级文件夹大小、使用比例、档案系统及其挂入点。
[root@oms ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda1 ext4 40G 35G .1G % /
devtmpfs devtmpfs .9G .9G % /dev
tmpfs tmpfs .9G .9G % /dev/shm
tmpfs tmpfs .9G 191M .7G % /run
tmpfs tmpfs .9G .9G % /sys/fs/cgroup
tmpfs tmpfs 379M 379M % /run/user/
-T:可以用来查看分区的文件系统。
-h:表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/vda1 这个分割区被挂在根目录下。
接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
2、du详细磁盘使用分析
du命令用来查看目录或文件所占用磁盘空间的大小。常用选项组合为:du -sh 目录。
-h:以人类可读的方式显示。-a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小。-s:只显示目录占用的磁盘空间大小,不显示其子目录和文件占用的磁盘空间大小。-c:显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和。--apparent-size:显示目录或文件自身的大小。-l :统计硬链接占用磁盘空间的大小。-L:统计符号链接所指向的文件占用的磁盘空间大小。
[root@oms ~]# du -csh /opt/software /var/log
31G /opt/software
224M /var/log
32G total
du -l:这个选项主要是针对硬链接。在统计目录占用磁盘空间大小时,-l选项会把硬链接也统计进来。帮助文档是这样解释的:
Count the size of all files,even if they have appeared already(as a hard link)。
我们在download目录下建立一个硬链接,指向本目录下的一个文件。不使用-l选项时,du发现硬链接指向本目录下的文件,于是自动忽略该链接文件,以免造成重复统计;使用-l选项,du才会把硬链接文件也统计进来。
du -L:这个选项主要是针对符号链接。它会把符号链接所指向的文件占用磁盘空间的大小也统计进来。帮助文档是这样解释的:
Dereference symbolic links(show the disk space used by the file or directory that the link points to instead of the space used by the link)。

注意:du命令在统计目录占用磁盘空间时,默认不统计链接文件(无论是硬链接或是符号链接),所以要用-l和-L选项特地指出来;此外,du命令默认不显示目录下文件占用磁盘空间的信息,但是却默认显示其下子目录所占用磁盘空间的信息。
du命令还可以对结果进行排序,以方便快速找出占用空间最多目录。
du -s 目录 | sort -rn #这是按字节排序
du -sh 目录 | sort -rn #这是按兆(M)来排序
#由于-sh大小显示看起来是乱的,因此建议使用du -s|sort -nr du -s 目录 | sort -rn | head #选出排在前面的10个
du -s 目录 | sort -rn | tail #选出排在后面的10个
du -h --max-depth=1 /home仅列出home目录下面所有的一级目录文件大小;
du -h --max-depth=1 /home/* 列出home下面所有一级目录的一级目录文件大小。
[root@oms ~]# du -h --max-depth= /var/log
16K /var/log/tuned
92M /var/log/OBS
92M /var/log/tomcat
38M /var/log/audit
224M /var/log
[root@oms ~]# du -h --max-depth= /var/log/*
38M /var/log/audit
2M /var/log/tomcat/catalina.log
90M /var/log/tomcat/server.log
92M /var/log/tomcat
33M /var/log/OBS/pics
59M /var/log/OBS/image
92M /var/log/OBS
16K /var/log/tuned
........
统计总数大小
du -sh xmldb/
du -sm * | sort -n //统计当前目录大小 并安大小 排序
du -sk * | sort -n
du -sk * | grep guojf //看一个人的大小
du -m | cut -d "/" -f 2 //看第二个/ 字符前的文字
查看此文件夹有多少文件 /*/*/* 有多少文件
du xmldb/
du xmldb/*/*/* |wc -l
wc [-lmw]说明
参数说明:-l :多少行; -m:多少字符; -w:多少字
3、rm清理磁盘
linux下删除指定文件、文件夹:rm
一、Linux下删除文件和文件夹常用命令如下:
删除文件: rm file1 file2
删除文件夹: rm -rf dir
注意:rmdir 只能够删除 空文件夹。
二、删除指定文件(夹)之外的所有文件
需要在当前文件夹中进行:
#删除keep文件之外的所有文件
rm -rf !(folder) #删除folder1和folder2文件之外的所有文件
rm -rf !(folder1 | folder2)
当前文件夹中结合使用grep和xargs来处理文件名:
#删除keep文件之外的所有文件
ls | grep -v keep | xargs rm
说明: ls先得到当前的所有文件和文件夹的名字, grep -v keep,进行grep正则匹配查找keep,-v参数决定了结果为匹配之外的结果,也就是的到了keep之外的所有文件名,然后 xargs用于从 标准输入获得参数 并且传递给后面的命令,这里使用的命令是 rm,然后由rm删除前面选择的文件。
好处:使用了grep来正则表达式来匹配文件名字,可以一次保留多个文件,从而进行更加准确的处理。
使用find命令代替ls,改进方法3从而能够处理制定文件夹的文件:
#删除当前test文件夹中keep文件之外的所有文件
find ./test/ | grep -v keep | xargs rm
说明,用grep而不用find -name选取名字,因为find选取名字时比较麻烦,对正则表达式支持不够,无法排除指定文件名。
直接使用find命令删除其他文件:
#删除keep以外的其他文件。
find ./ -name '[^k][^e][^e][^p]*' -exec rm -rf {} \; #删除keep以外的其他文件。推荐!
find ./ -name '[^k][^e][^e][^p]*' | xargs rm -rf
说明:上面第二行的代码效率高些,原因在于删除多个文件时 -exec会启动多个进程来处理,而xargs会启动一个rm进程来处理。
三、实践:删除除debug.log 和sys.out 文件外的所有文件。
#建立查找规则
vi test.txt ^debug.log$
^sys.out$ #尝试查找:
ls | grep -f test.txt
debug.log
sys.out #删除要保留文件外的其它文件:
ls | grep -vf test.txt |xargs rm
#记得加v,保留要保留的文件,不要删错了
删除超过一个月时间的日志文件:
#删除,文件名中带有数字,超过30天的日志:
find -mtime + -name "*[0-9]*" -exec rm {} \;
注:可以根据名称规则过滤。
Linux磁盘空间分析及清理(df、du、rm)的更多相关文章
- 【linux】linux磁盘空间 目录查看清理 和 文件查看清理
=========================大目录排查============================= 一.首先查看磁盘挂载,磁盘空间使用情况 1.进入根路径 cd / 2.查看磁盘挂 ...
- Docker磁盘空间分析与清理
首先使用du命令逐层分析docker磁盘的使用情况: (base) [root@openvino docker]# du -h --max-depth=1 | sort 0 ./containerd ...
- 查看Linux磁盘空间大小命令
发表于:2012-09-17 10:25 查看Linux磁盘空间大小 一.df 命令: df 是来自于coreutils 软件包,系统安装时,就自带的:我们通过这个命令可以查看磁盘的使用情况以及文 ...
- Linux 系统磁盘空间占满,df 和 du 结果不一致
服务器运行一段时间后df查看磁盘剩余空间不足,通过du统计发现被几个文件占用,遂删除之.过了一段时间磁盘空间再次不足,通过du统计却找不到那么多大文件.搜索后才得知原因:文件删除后空间没有释放,du统 ...
- Linux磁盘空间不足处理方法
维护Linux服务器正常使用需要经常删除Linux系统运行产生的系统日志和业务环境产生的debug日志文件.安装包等.本文主要描述如何通过脚本实现清理业务环境产生的 debug日志文件和上传或备份的打 ...
- linux磁盘空间使用问题
linux磁盘空间用满的处理方法 linux下空间满可能有两种情况 可以通过命令 df -h 查看磁盘空间占用,实际上是查看磁盘块占用的文件(block) df -i 查看索引节点的占用(Inod ...
- Linux磁盘空间被未知资源耗尽【转】
Linux磁盘空间被未知资源耗尽 在linux中,当我们使用rm在linux上删除了大文件,但是如果有进程打开了这个大文件,却没有关闭这个文件的句柄,那么linux内核还是不会释放这个文件的磁盘空间, ...
- Linux学习之CentOS(十七)-----释放 Linux 系统预留的硬盘空间 与Linux磁盘空间被未知资源耗尽 (转)
释放 Linux 系统预留的硬盘空间 大多数文件系统都会保留一部分空间留作紧急情况时用(比如硬盘空间满了),这样能保证有些关键应用(比如数据库)在硬盘满的时候有点余地,不致于马上就 crash,给监 ...
- linux磁盘空间满了 但是没有大文件
很常见的一个问题 linux磁盘空间满了 但是没有大文件 解决思路: 1.用df 检查发现/根目录可用空间为0 [root@/]#df -h 2.用du检查发现各目录占用的空间都很少,有约3G的空间莫 ...
随机推荐
- C#软件开发实例.私人订制自己的屏幕截图工具(九)使用自己定义光标,QQ截图时的光标
版权声明:本文为 testcs_dn(微wx笑) 原创文章,非商用自由转载-保持署名-注明出处,谢谢. https://blog.csdn.net/testcs_dn/article/details/ ...
- iuplua test on luaforwindows
SW https://github.com/rjpcomputing/luaforwindows/releases Steps Install lua for windows write a bat ...
- Eslint 能自动格式化代码,为什么还要用 Prettier?
ESLint 与 Prettier 区别: ESLint:代码检测工具:可以检测出你代码中潜在的问题,比如使用了某个变量却忘记了定义: Prettier:代码格式化工具:作为代码格式化工具,能够统一你 ...
- MySQL Key值(PRI, UNI, MUL)的含义
PRI主键约束: UNI唯一约束: MUL可以重复. 参考:http://www.cnblogs.com/licheng/archive/2010/10/16/1852938.html
- 小程序 去掉 <button /> 组件默认 border 边框样式
代码: <button class="btn">点击</button> 效果图: 目的:去掉 <button /> 默认样式中的 backgro ...
- 解决Ubuntn安装中文语言包却不能切换
记一次奇葩的经历吧,第一次在VM中安装Ubuntn16.04安装完成后的确出现了语言包安装提示,就这样毫无压力的一直用着中文版的Ubuntn. 习惯了一段时间后第二次安装一样的安装方式却始终是英文界面 ...
- reids高可用(灾难备份-持久化)
java缓存存放到内存之中,当服务器重启以后,内存的数据将丢失,而reids作为缓存,重启reids以后 数据是不是也会丢失,redis服务器重启以后数据也不会丢失,这个是redis提供了持久化的功能 ...
- SPI、I2C、UART、I2S、GPIO、SDIO、CAN 简介
转自http://sanwen.net/a/fmxnjoo.html SPI.I2C.UART.I2S.GPIO.SDIO.CAN,看这篇就够了 总线 总线,总要陷进里面.这世界上的信号都一样,但是总 ...
- 关于offsetParent
不知道有多少人知道JavaScript中有offsetParent这么个属性. 关于offsetParent,我最开始见到他,是在<JavaScript高级程序设计(第3版)>第321页, ...
- spring梳理