一次Linux磁盘空间清理的经历
2013-03-26 21:44
501 查看
最近,在Linux上运行BPM应用总是报没有空间的错误。经过一番调查和周折,终于找出了问题的症结,并顺利解决。今天,我把过程总结一下,方便自己或其他有类似问题的朋友参考。这里不对具体命令的具体各种参数做深入介绍,网上相关文档很多。只求尽量给出涉及命令运行的具体场景。
出现磁盘满后,第一个执行的命令就是df,通过它查看文件系统的挂载情况,该命令可以给出每个文件系统的磁盘占用情况。以期来找到使用率接近100%的文件系统,这样就找到了我们调查的入口点。
![](http://img.my.csdn.net/uploads/201303/26/1364304876_3371.JPG)
根据经验,BPM应用正是在/data目录下运行。下一步可以执行du -m /data/* | sort -nr
| head -10查找在 /data目录下,到底哪个目录或文件占用了大部分空间,结合自己应用的特点就能轻易定位到占用大空间的准确目录或文件。另外,如果你够细心,你会发现有些挂载点空间总量 > 已使用 + 空间余量,但有的文件系统这个正好相等。这主要和对应的文件系统有关系,有的文件系统,像ext2,ext3, 为管理员预留了一部分空间作为系统管理只用。
![](http://img.my.csdn.net/uploads/201303/26/1364304995_2367.JPG)
如上图,du命令列出了前10个占用空间最多的目录,最左侧的数字是以M为单位。凭应用经验,我知道RDC_Full_PDP目录比较可疑。进入SOA1目录,通过ls
-lh 命令进行查看。
![](http://img.my.csdn.net/uploads/201303/26/1364305090_6133.JPG)
你肯定发现上图中列出的对于RDC_Full_PDP目录对应的大小才559M,和之前用du命令获得的20328M的数字差了不是一点半点。如果有这种想法,你需要了解一下目录内容只是一组包含文件名及其对应索引节点的索引节点文件条目。索引节点包括文件地址,拥有者,类型,权限,地址等信息。一个文件名及其所对应节点信息加起来一般也就几十个字节。ls命令对于目录的大小就是指这些索引节点条目的所占空间总和。那么559M的文件节点,可想而知这里存放了多少个文件。
下一步,就是确定这个目录里的文件是否属于无用过时数据,我这次的场景恰恰是log信息。如下图示
![](http://img.my.csdn.net/uploads/201303/26/1364305348_2165.JPG)
确定这些信息无用后,我们就可以直接把它们删除掉。但由于文件数量巨大不管你是用
还是
或者使用通配符,删除其中一部分
都会报参数列表过长的错误
![](http://img.my.csdn.net/uploads/201303/26/1364305682_3718.JPG)
这时候,我们可以使用xargs命令,将find命令的结果通过管道符作为参数传递给rm命令删除与某个通配符匹配的记录。
或者将大于两周的文件删除
出现磁盘满后,第一个执行的命令就是df,通过它查看文件系统的挂载情况,该命令可以给出每个文件系统的磁盘占用情况。以期来找到使用率接近100%的文件系统,这样就找到了我们调查的入口点。
根据经验,BPM应用正是在/data目录下运行。下一步可以执行du -m /data/* | sort -nr
| head -10查找在 /data目录下,到底哪个目录或文件占用了大部分空间,结合自己应用的特点就能轻易定位到占用大空间的准确目录或文件。另外,如果你够细心,你会发现有些挂载点空间总量 > 已使用 + 空间余量,但有的文件系统这个正好相等。这主要和对应的文件系统有关系,有的文件系统,像ext2,ext3, 为管理员预留了一部分空间作为系统管理只用。
如上图,du命令列出了前10个占用空间最多的目录,最左侧的数字是以M为单位。凭应用经验,我知道RDC_Full_PDP目录比较可疑。进入SOA1目录,通过ls
-lh 命令进行查看。
你肯定发现上图中列出的对于RDC_Full_PDP目录对应的大小才559M,和之前用du命令获得的20328M的数字差了不是一点半点。如果有这种想法,你需要了解一下目录内容只是一组包含文件名及其对应索引节点的索引节点文件条目。索引节点包括文件地址,拥有者,类型,权限,地址等信息。一个文件名及其所对应节点信息加起来一般也就几十个字节。ls命令对于目录的大小就是指这些索引节点条目的所占空间总和。那么559M的文件节点,可想而知这里存放了多少个文件。
下一步,就是确定这个目录里的文件是否属于无用过时数据,我这次的场景恰恰是log信息。如下图示
确定这些信息无用后,我们就可以直接把它们删除掉。但由于文件数量巨大不管你是用
rm ./RDC_Full_PDP/*
还是
for filename in `ls ./RDC_Full_PDP/*` do rm $filename done
或者使用通配符,删除其中一部分
find ./RDC_Full_PDP/ -name Get_RDC_Full_File_2* -exec rm {} \;
都会报参数列表过长的错误
这时候,我们可以使用xargs命令,将find命令的结果通过管道符作为参数传递给rm命令删除与某个通配符匹配的记录。
find ./RDC_Full_PDP/ -name Get_RDC_Full_File_2* -print0 | xargs -0 rm
或者将大于两周的文件删除
find ./RDC_Full_PDP/ -mtime +14 -print0 | xargs -0 rm
相关文章推荐
- linux清理磁盘空间以及裁剪超大日志文件
- [翻译]清理Linux磁盘空间的4种方法
- linux入门:磁盘空间清理
- 记一次vmware centos虚拟机磁盘空间不够的经历
- linux磁盘空间不足怎么办,磁盘清理方法
- 如何在linux清理磁盘空间
- 磁盘空间不足怎么办,linux磁盘清理方法
- linux清理磁盘空间详解
- Linux 怎么清理磁盘占用空间大(张高伟)
- linux清理磁盘空间详解
- Centos Linux 怎么清理磁盘占用空间大:/dev/xvda1
- linux磁盘空间清理
- Linux被占用的日志文件清理后磁盘空间释放,但ll查看仍然显示曾经达到的最大大小,此时copy该文件也是按曾经最大的值占用空间
- Unix/Linux中常用的清理磁盘空间的命令
- linux清理磁盘空间详解
- linux系统清理磁盘空间
- Linux系列:linux下查看磁盘空间
- 查看linux的磁盘空间和文件所占的空间
- 一次Mysql数据库服务器磁盘空间满引发的写入和同步问题
- 诡异的Linux磁盘空间被莫名其妙占用