centos 删除大量的小文件
最近遇到小问题,因为没有注意生产环境有一台nfs的机器磁盘的inodes不足,发现文件数过多,需要清理
查看目录
查看目录发现一些shell指令执行报错,统计了下文件目录中文件的个数
文件个数有2626294个(全是tts缓存,这个量是真的大),导致shell 的rm 无法使用。
碰运气的百度之路
百度看看其他人的解决方法:
1. 使用xargs,这个目录下主要是MP3 格式的文件,选择使用grep 去筛选
ls|grep aa.mp3 | xargs -n 10 rm -fr
报错: -bash: /usr/bin/grep: Argument list too long
grep 也不行,真是。。。。。。。
2. 使用 rsync 备份删除方式去清,速度最快
(1)安装rsync指令
yum install -y rsync
(2)创建一个同步的目录,然后同步清除
mkdir /home/zw/
(3)运行同步空目录,删除目录/var/spool/postfix/maildrop
rsync --delete-before -rlptD /home/zw/ /var/spool/postfix/maildrop
速度很快,强烈推荐使用!!!!
3. 使用find去清除
(1)find . -mtime +90 -type f -exec rm -f {} ;
(2)find . -mtime +90 - type f -delete
这个发现清除是可以的。对比两个指令运行的速度,第2个快。