批量文件删除处理

来源:互联网 发布:java适配器模式 编辑:程序博客网 时间:2024/06/11 06:54

场景:在一次greenplum扩容中,在进行停机扩展服务器时,发现扩展失败,原因在于gpperfmon目录下的文件太多,如下是进行的统计,统计结果一共是150万个文件,而且每个文件都比较小

[root@gp-m0001 data]# ls -l |wc -l
ls: cannot access q1506422809-1645-2849501.txt: No such file or directory
ls: cannot access q1506422809-1645-2854396.txt: No such file or directory
ls: cannot access q1506422809-1645-2858582.txt: No such file or directory
1502247
[root@gp-m0001 data]# ls *.txt | xargs -n 10 rm -rf
-bash: /usr/bin/ls: Argument list too long


于是使用了脚本进行删除,但是在删除过程中,发现需要删除的列表太长,而且还会导致删除脚本的程序直接假死的情况。

于是选择了ls 然后进行分组删除,但是发现ls时显示的结果还是太长,无法正常显示。

不得已,最后只好选择新建目录的方式进行删除

mkdir bak_data

time rsync -a --delete bak_data/ data/

[gpadmin@xxxxx gpperfmon]$ time rsync -a --delete bak_data/ data/

real    9m36.883s
user    0m2.295s
sys     0m39.218s


如上是删除的统计时间,确实算是挺快。

原创粉丝点击