rsync快速删除大量小文件

由于业务需要,每天会上传上千万个压缩的日志包,在一次做临时处理的时候,需要将这些数据包从云存储上面下载下来,做处理,BUT,做完处理之后忘记将这些包删掉了,so,临时积累了好多包,磁盘的inode都满了,,后来想办法要删掉这些文件,rm -f 根本不管用,后来网上搜索了一下,用rsync命令进行删除操作,后来尝试了一下:

新建了一个空的文件夹:

mkdir empty

然后:

rsync --delete-before -d empty/ app/
rsync --delete-before -d empty/ portal/

将app文件夹和portal文件夹下的文件清空,后来试了一下确实好使,不过速度也确实需要等待一会。将文件清空了之后,发现文件夹的大小并没有改变(这个是记录磁盘文件夹文件的inode的文件么?),后来直接将文件夹删掉:

rm -rf app/
rm -rf portal/

这样算是彻底清空了。下面整理了一下关于rsync命令快速删除大量文件的说明:

1.----------------------------------------------------------

rsync --delete-before --force -r empty/ app/

选项说明:

--delete-before 接收者在传输之前进行删除操作
-r              recurse into directories


注意:
empty是我们提前建立的文件夹,后面的/app是我们要删除的文件的所在目录。
当SRC和DEST文件性质不一致时将会报错
当SRC和DEST性质都为文件【f】时,意思是清空文件内容而不是删除文件
当SRC和DEST性质都为目录【d】时,意思是删除该目录下的所有文件,使其变为空目录
 

可能遇到的问题:

rsync 'cannot delete non-empty directory' errors, even with --force option

cannot delete non-empty directory 错误在同步source side的时候,你希望执行 rsync --delete. Rsync 不会让你删除不包含在同步目录内的文件。添加 --delete-excluded 选项即可解决。

参考:

http://serverfault.com/questions/573392/rsync-cannot-delete-non-empty-directory-errors-even-with-force-option

http://blog.csdn.net/knowledgeaaa/article/details/41038967


2-------------------------------------------

    rsync --delete-before -d -a -H -v --progress --stats empty/ app/

  或者

  

    rsync --delete-before -d /data/blank/ /var/edatacache/
  这样/var/edatacache目录就被快速的清空了。
  选项说明:
  –delete-before 接收者在传输之前进行删除操作
  –progress 在传输时显示传输过程
  -a 归档模式,表示以递归方式传输文件,并保持所有文件属性
  -H 保持硬连接的文件
  -v 详细输出模式
  –stats 给出某些文件的传输状态
  -d transfer directories without recursing

  三、也可以用来删除大文件

  假如我们在app/下有一个几十G甚至上百G的文件data.log,现在我们要删除它

  1)、创建一个空文件

  touch empty

  2)、用rsync清空/root/data文件

  rsync --delete-before -d --progess --stats empty/ app/data.log

  注意:

  当SRC和DEST文件性质不一致时将会报错

  当SRC和DEST性质都为文件【f】时,意思是清空文件内容而不是删除文件

  当SRC和DEST性质都为目录【d】时,意思是删除该目录下的所有文件,使其变为空目录

参考:http://www.xitongzhijia.net/xtjc/20150410/44874.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值