Chinaunix

标题: 雪地跪求快速删除海量文件的方法 [打印本页]

作者: RainXMan    时间: 2006-10-28 17:52
标题: 雪地跪求快速删除海量文件的方法
系统下某目录文件巨多,使得CPU负荷达到100%,不得已关闭客户系统,专心清理文件,可rm -rf data已经删了一天了,而且还不知道还要等多久,请教有没有其它办法,可以快一点儿,哪怕只快一点点儿也行呀,不能把客户程序老是停着呀?
作者: vantien    时间: 2006-10-28 20:25
档案目录多跟 CPU负荷高有啥关系呀?
你应该是要先查看一下是哪些程序占用了CPU资源
看要不要先将那些占用CPU资源的程序删了
再处理清理文件的工作吧.

另外要删除的文件数过多的话用 rm -rf * 时会出现参数过长的讯息
可改用 find 搭配 -exec rm -rf {} \; 使用
作者: 寂寞烈火    时间: 2006-10-28 21:03
楼上说的在理1
作者: nully    时间: 2006-10-28 21:50
把除些目录外的其它目录移到其它分区
然后mkfs
再把其它目录移回来
作者: RainXMan    时间: 2006-10-29 16:53
又删了一天了,还有292万个文件,从昨晚到现在只删掉了40万个文件,这样看得话,还要删一个星期呀
作者: RainXMan    时间: 2006-10-29 17:01
原帖由 vantien 于 2006-10-28 20:25 发表
档案目录多跟 CPU负荷高有啥关系呀?
你应该是要先查看一下是哪些程序占用了CPU资源
看要不要先将那些占用CPU资源的程序删了
再处理清理文件的工作吧.

另外要删除的文件数过多的话用 rm -rf * 时会出现参数 ...


不好意思,这些文件都是用于同步数据库的数据文件,文件多,程序每次检索很耗CPU的,而且程序检索还是秒级执行的,怪我没说清楚,这个问题我估计我也说不清楚。CPU高是因为数据库复制程序占用CPU,程序占CPU是因为堆积文件过多,堆积文件过多是因为系统配置有误。我现在已将配置修复,不会再产生堆积文件了,原来的近400万个文件必须删除

用find -name *dat -exec rm -rf {} \;同样会出现参数过多的问题

还是要说声谢谢!
作者: RainXMan    时间: 2006-10-29 17:05
原帖由 nully 于 2006-10-28 21:50 发表
把除些目录外的其它目录移到其它分区
然后mkfs
再把其它目录移回来


该目录所在的分区是users分区,要把其它目录移走可能不太现实,那文件太多了,不敢保证移动过程中不会出错
作者: langue    时间: 2006-10-29 18:20
请问是什么文件系统,以及内核情况。
存储介质等。

是否可以把文件名 ls 到一个列表中,用 C 写个小程序,读取该列表并调用 unlink(),应该快一些。

[ 本帖最后由 langue 于 2006-10-29 18:21 编辑 ]
作者: wakinhui    时间: 2006-10-29 19:03
find . -name ... | xargs rm ;
作者: MicroHard    时间: 2006-10-30 03:11
目录改名,后台慢慢删!
作者: susbin    时间: 2006-10-30 04:54
如果要删掉的文件比要保留的多很多,可以把要保留的文件复制到另一个分区,
然后在users分区上重建文件系统。对不同的系统和数据库有不同的解决方法。
楼主提供的信息太少了。
作者: cyaln    时间: 2006-10-30 09:13
海量删除:
1.rm -rf *
2.find . -name * | xarg rm
3.mkfs
作者: iammecn    时间: 2006-10-30 09:23
原帖由 MicroHard 于 2006-10-30 03:11 发表
目录改名,后台慢慢删!


作者: broadsowrd619    时间: 2006-10-30 11:29
如果是全部删除:echo * |xargs rm -rf 效率很高的。
作者: w_jia82102    时间: 2006-10-30 11:51
格式化磁盘
这样兴许能快点




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2