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


  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过使用rsync删除大量文件。一般情况下,我们使用rm命令来删除文件,但是当要删除文件较多时,rm命令的执行速度比较慢。相比之下,rsync可以通过一种巧妙的替换方式来实现目录下大量文件删除。具体操作如下: 1. 首先,创建一个空目录,例如使用命令mkdir temp来创建一个名为temp的空目录。 2. 接下来,执行rsync命令来删除目标目录下的所有文件。命令格式为rsync -a --delete temp/ 目标目录/。其中,temp/是空目录的路径,目标目录/是需要删除文件的目标目录的路径。 3. 执行完rsync命令后,再次查看目标目录,你会发现目标目录下的所有文件都被成功删除了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [rsync快速删除海量文件](https://blog.csdn.net/weixin_30907523/article/details/96010442)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [rsync大批量删除文件](https://blog.csdn.net/Answer_to_you/article/details/108074699)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值