hualinux1.9 基础练习:如何删除900W单目录小文件
需求
有的开发代码写不好,导致单目录下缓存文件近900W个,要求删除这900W个文件,怎搞?
分析
如果是使用rm -rf 肯定不好,会卡死,提示参数过长,看来是把文件名当成参数了。顶多就80W个,已经很不错了。明显满足不了要求
可以用rsync同步清空,rsync统计文件名不会全部写在内存中了,超过一定数据会放在磁盘里,所以适合删除文件数比较多的情况
操作
[root@vm6Temp.old]$ ls -1f |wc -l8767765[root@vm6 tools]# cd /disk1/tools[root@vm6 tools]# time rsync --delete-before -d --progress --stats empty/ Temp.old/...Number of files: 1Number of files transferred: 0Total file size: 0 bytesTotal transferred file size: 0 bytesLiteral data: 0 bytesMatched data: 0 bytesFile list size: 15File list generation time: 0.001 secondsFile list transfer time: 0.000 secondsTotal bytes sent: 22Total bytes received: 12sent 22 bytes received 12 bytes 0.00 bytes/sectotal size is 0 speedup is 0.00rsync warning: some files vanished before they could be transferred (code 24) at main.c(1039) [sender=3.0.6]real 753m37.972s(约12.5小时)user 1m26.525ssys 11m37.410s
可见统计和删除一共花了12.5小时,服务器是阿里云4核8G的,文件都是10多k-几十k
总结:
不要在一个目录中放大量的(通过超过200W的文件)文件,这样会对系统性能有影响,得细分成类,这样能提高性能也方便维护。
hualinux1.9 基础练习:如何删除900W单目录小文件相关推荐
- linux基础命令学习(五)目录或文件权限
一.查看文件的详情 ls -al 二.改变目录或文件的权限 chmod [-cfvR] [--help] [--version] mode file 1. 必要参数 -c 当发生改变时,报告处理信息 ...
- 1222_SCons单目录多文件的编译实现
全部学习汇总: GitHub - GreyZhang/g_SCons: A new member in my toolbox, looking forward to replacing make to ...
- 在Linux中同时删除一百万个小文件的最快方法
最近,看到一个比较有意思的话题:在Linux下面如何最快的删除一个目录下的百万级的小文件?通常情况下,在Linux中删除文件首先会选择rm命令,但是处理数量巨大的文件的时候,其删除性能并不是非常好. ...
- eclipse 工程目录下 删除不掉目录或者文件的解决办法
对于新手来说,有时操作失误就会导致eclipse目录中的某些子目录或者文件无法删除. 这样的原因是,在工程目录中(不是eclipse上显示的,是真实的物理磁盘上的)这个目录或者文件已经不存在了,所以在 ...
- Spark-HDFS 删除空文件 合并小文件
一.引言 hive 执行任务后目录下生成过多小文件,过多的小文件会占用 namenode 的内存,对于 HDFS 非常不友好,所以可以通过删除空文件或者合并小文件的方法进行优化. 二.删除空文件 可以 ...
- find命令删除大量小文件
在Linux下使用 "rm -rf *" 试图删除非常大量的小文件时,可能会报类似下边的错误: /bin/rm: Argument list too long. 这是因为通配符&q ...
- 算法设计 删除无序单链表中的值域重复的结点
删除无序单链表中的值域重复的结点 题目: 有一个带头结点的单链表head,其中可能出值域重复的结点,设计一个算法删除值域重复的结点.要求在主函数中调用设计的算法,给出结果. 思路:删除某个结点值的重复 ...
- Linux循环链表删除节点,删除循环单链表开头元素
要删除循环单链表中的开头节点,需要进行一些指针调整. 在开头有三种从循环单链表中删除节点的方案有以下几种. 情况1 :(链表为空) 如果链表为空,则条件head == NULL将变为true,在这种情 ...
- laravel基础课程---14、表单验证(lavarel如何进行表单验证)
laravel基础课程---14.表单验证(lavarel如何进行表单验证) 一.总结 一句话总结: lavarel的验证的功能比tp要[简单]且[强大]很多 直接控制器中:添加[规则数组]和[修改提 ...
最新文章
- ASP.NET重用代码技术 - 用户控件技术
- html5转apicloud,使用APICloud编写优雅的HTML5代码
- 基于三层BP神经网络的人脸识别
- java如何访问局域网共享文件
- 数据类型_插入数据_选取数据_修改数据——删除行
- 通过听力写代码?盲人程序员就是这样做的
- vs mysql iss_MySQL5.7与8.0的连接问题(vs2015\2017)
- html怎么无损插入背景音乐,HTML插入背景音乐方法【全】
- 命令行编译和运行java
- 【ES6入门04】:数值扩展
- maven创建java项目_使用maven命令行创建java项目
- 通过kafka提供的命令来查看offset消费情况
- 江门android培训,基于selenium模块的江门市干部培训网络学院自动选课脚本
- 判断用户端有无安装flash插件并返回对应播放器选项提示
- Elasticsearch系列——(1.2)倒排索引 的实现
- 可以查看计算机主要自启动项的技术,电脑中怎么查看启动项
- 文本分割之水平投影法基于OpenCV(python)版实现
- Python之warnings模块忽略warning警告错误
- 特征值特征向量和奇异值分解精彩片段汇总
- 有人不理解,有人不屑,到底什么是UXD
热门文章
- 吴恩达《机器学习系列课程》学习笔记(一)
- python读取7个数(1-50)的整数值_python每日一题总结7
- Mybatis 源码解析(六) Mybatis方言支持
- 11对战平台服务器怎么修改,11对战平台无法登陆的解决方法
- 学微服务必经之路——Nacos新手入门(上)
- 如何准备校招技术面试+一只小菜鸟的面试之路
- git删除本地分支、删除远程分支
- sql注入学习笔记(4)--sqlmap注入心得
- 菌外膜囊泡包载的阿霉素纳米粒|巨噬细胞膜囊泡包四氧化三铁二氧化硅纳米粒
- Leetcode-标签为Tree 226. Invert Binary Tree