分类:
2007-06-01 17:26:16
Find的常用选项
经常会遇到这种情况:某个文件系统的使用率达到85%以上,但该文件系统暂时无法扩展。这时候,应该到这个文件系统中找到一些过大的文件(当该文件系统中的某个目录中有过多的小文件时也会出现该情况)。
然后,将这些文件压缩。
为了找到这些文件,需要适用find命令。针对该情况而使用的find选项如下:
-xdev 位置无关项。可以避免find跨越指定目录的文件系统。当指定目录下有其它文件系统的挂载点时,我们为了不在其它文件系统中查找文件,可用该选项。
-name 匹配名字。
注:当从shell中调用find时,模式应该进行转义(使用反斜杠)或使用引号括起来,以防止shell扩展任何元字符。模式可能包含补充代码集字符。
―――――――以上是文档的原话。
-type c 查找类型为c的文件。其中c是下列值之一:
f 常规文件
d 目录
b 块设备专用文件
c 字符设备专用文件
p FIFO(命名管道)
l 符号链接
s 套接字
n 网络设备专用文件
M 挂载点
-size n[c] 查找文件长度为n块(每块为512字节)。如果n后面跟c,则文件大小用字节表示。
-atime n 查找最后访问时间距现在为n天的文件。
-mtime n 查找最后修改时间距现在为n天的文件。
-ctime n 查找最后对文件状态信息修改时间为n天的文件。
-newer file 查找最后更新时间比file文件最后更新晚的文件。
例子:
现/home文件系统使用率为95%,我们要到该文件系统下先看看哪个目录很大。
首先应进入/home/目录下,判断哪个目录下的(或那个类型的)文件有可能增长很快,或者文件数目会增加很快。
然后,使用find命令查找。先看看是不是有15天以前的超过
find /home/ -size +
若有,则用compress将其压缩。若没有,则看是不是有很多同类型的小文件占用了过多的空间,比如.xml类型的文件:
find /home/ -xdev -name *.xml -mtime +15
若有,则还要用compress压缩。
除了用compress压缩文件外,还可以将过期的文件暂时转移到其它文件系统中去。但这种方法我没有使用过。我担心如果将某个文件移走,会对某个应用产生影响。那样,就麻烦大了。
相信通过以上两种情况的分析,一般的这种问题都能解决了。但这只是权宜之计。最终的解决方法,除了删除旧的不用的文件外,只有扩展文件系统了。