gulongl6 2015-01-29 08:21 采纳率: 0%
浏览 1972

redhat中如何快速删除大量小文件

业务系统每天会在一个目录下产生大约300万个临时文件,每个文件大约100K左右,自己写了一个脚本文件,每天定时删除,最近由于业务量的增长,这个脚本已经不能胜任这个工作了,请问有没有更好的办法来删除这些文件?
附上脚本文件代码
#!/bin/bash
time=date -d "3 day ago" "+%Y%m%d"
date > /root/date_start_t.txt
ls /backup/fr > dir_t.txt

for i in cat dir_t.txt
do

ls /backup/fr/$i > dir1_t.txt
echo $time-$i
if [ $i -gt $time ]
then
break
fi

for j in cat dir1_t.txt
do

ls /backup/fr/$i/$j > dir2_t.txt

for k in cat dir2_t.txt
do

ls /backup/fr/$i/$j/$k > dir3_t.txt

for l in cat dir3_t.txt
do

chmod -R 755 /backup/fr/$i/$j/$k/$l
rm -rf /backup/fr/$i/$j/$k/$l
echo /backup/fr/$i/$j/$k/$l

done

done
rm -rf /backup/fr/$i/$j/*
echo /backup/fr/$i/$j >> /root/date_end_t.txt
date >> /root/date_end_t.txt
done

rm -rf /backup/fr/$i/*
echo /backup/fr/$i >> /root/date_end_t.txt
date >> /root/date_end_t.txt

rm -rf /backup/fr/$i
done

date >> /root/date_end_t.txt

  • 写回答

3条回答 默认 最新

  • threenewbee 2015-01-29 08:44
    关注

    将临时文件挂载到一个卷上,然后直接通过格式化这个卷完成删除。

    评论

报告相同问题?