Linux下使用rsync最快删除海量文件的方法

摘要

在linux的web服务器维护过程当中,有些程序会使用本地file缓存或生成大量程序日志。当发布进行版本迭代时,由于上个版本的程序会保留一段时间,因此这些小文件会消耗大量的inode。这个时候,我们常用的删除命令rm -fr * 就不好用了,因为要等待的时间太长。所以必须要采取一些其他手段来删除这些大量的小文件。这个时候,我们可以使用rsync来实现快速删除大量文件。

安装

rsync安装很简单,这里我们直接使用yum安装即可

1
yum install -y rsync

创建一个空的文件夹

1
mkdir /tmp/null

用rsync删除目标目录

1
rsync --delete-before -a -H -v --progress --stats /tmp/null/ /data/web/app/xxx/cache/

这样我们要删除的cache目录就会被清空了,删除的速度会非常快。

rsync实际上用的是替换原理,处理数十万个文件也是秒删。

参数

1
2
3
4
5
6
–delete-before 接收者在传输之前进行删除操作
–progress 在传输时显示传输过程
-a 归档模式,表示以递归方式传输文件,并保持所有文件属性
-H 保持硬连接的文件
-v 详细输出模式
–stats 给出某些文件的传输状态
Donate