从“No space left on device”到删除海量文件
开发发现某个云服务器无法启动进程,提示“No space left on device”,但是使用#df -h查看容量的时候,明明还有很多的空间。于是使用#df -i,发现inode节点已经全部用光了,所以现在不能建立任何新的文件。
既然如此就要查出来是哪个文件夹里会有如此多的文件来占用这些inode,使用一个小脚本:#for i in /*; do echo $i; find $i | wc -l; done,获取到/mnt下有一个文件占用了绝大多数的inode,如图:
于是就进入到mnt这个文件夹里,慢慢找寻到底是哪个文件夹,用上面那个语句一点一点缩小范围,最后确定文件夹原来就是data文件夹,如图:
现在如果要#rm -rf data/*的话,是没有效果的,有效果的话也很慢。而且很有可能报“-bash: /bin/rm: Argument list too long”的错,因为这个文件夹里面的小文件实在太多了,有足足两百五十多万个,那么怎么样处理这样的情况?
用find搭配-type f -exec rm {} \;可能会引起内存溢出,用文件夹重置命令搭配"--reference" 也没什么效果。
这时最好的方法就是使用rsync!
先#yum install rsync,当然了现在inode是饱和的状态,yum install是会报错的:
那么就需要手动删除一些文件,腾出来一部分inode供yum使用,安装完毕rsync之后,找到一个空文件夹,如果没有空文件夹,就手动建立一个。
使用命令:#rsync --delete-before -a -H -v --progress --stats /空文件夹的路径/ /海量小文件的路径/
–delete-before 接收者在传输之前进行删除操作
–progress 在传输时显示传输过程
-a 归档模式,表示以递归方式传输文件,并保持所有文件属性
-H 保持硬连接的文件
-v 详细输出模式
-stats 给出某些文件的传输状态
如果你开了这个服务器的两个窗口,一个是执行上面的命令,另一个是在海量文件夹里执行#ls,这个时候ls命令是卡死的,过了大约2分钟,就会看到ls展示的文件喷涌而出,整个电脑屏幕好比***帝国一样,异常壮观。
静等大约20分钟,整个文件夹删除干净,inode也释放了97%,世界恢复了清静。
最后的最后,如果您觉得本文对您升职加薪有帮助,那么请不吝赞助之手,刷一下下面的二维码,赞助本人继续写更多的博文!
转载于:https://blog.51cto.com/chenx1242/1978429
从“No space left on device”到删除海量文件相关推荐
- Linux下使用rsync最快速删除海量文件的方法
遇到了要在Linux下删除海量文件的情况,需要删除数十万个文件.这个是之前的程序写的日志,增长很快,而且没什么用.这个时候,我们常用的删除命令rm -fr * 就不好用了,因为要等待的时间太长.所以必 ...
- Linux下使用rsync最快速删除海量文件的方法分享
点评:昨天遇到了要在Linux下删除海量文件的情况,需要删除数十万个文件.这个是之前的程序写的日志,增长很快,而且没什么用 这个时候,我们常用的删除命令rm -fr * 就不好用了,因为要等待的时间太 ...
- Ubuntu: No space left on device,无法创建新文件夹,无法创建新文件,无法存储文件
去看看去吧,磁盘空间不够啦,去删掉一些不用的文件吧 df -h # 查看磁盘使用情况 df -i # 查看inode使用情况
- linux快速删除海量文件
首先创建一个临时目录: /rubbish rsync --delete-before -a -H -v --progress --stats /rubbish /111 /111为目的目录 选项说明: ...
- linux rsync删文件速度,Linux下使用rsync最快速删除大量文件的方法
要在Linux下删除海量文件的情况,需要删除三层哈希目录下的几十万个文件.这个时候,删除命令rm -rf * 就不好用了,因为要等待的时间太长.所以必须要采取一些非常手段.我们可以使用rsync来实现 ...
- [ZZ] 使用rsync来实现快速删除大量文件
昨天遇到了要在Linux下删除海量文件的情况,需要删除数十万个文件.这个是之前的程序写的日志,增长很快,而且没什么用.这个时候,我们常用的删除命令rm -fr * 就不好用了,因为要等待的时间太长.所 ...
- Linux下使用rsync最快速删除大量文件的方法
要在Linux下删除海量文件的情况,需要删除三层哈希目录下的几十万个文件.这个时候,删除命令rm -rf * 就不好用了,因为要等待的时间太长.所以必须要采取一些非常手段.我们可以使用rsync来实现 ...
- ceph osd 由于“No space left on device” 异常down,通过扩容文件系统或者显式运行osd进程解决
文章目录 ceph版本: 环境配置: 异常问题: 问题解决: 总结 ceph版本: ceph 12.2.1 环境配置: tier_pool 16个分区大小800G 的osd容量 3副本 data_po ...
- 宝塔面板遇到No space left on device错误的解决方法
问题描述 说明:今天登陆阿里云服务器的宝塔面板,遇到了磁盘爆满的情况,登陆的时候提示IOError: [Errno 28] No space left on device等错误信息,导致登录面板不显示 ...
最新文章
- opencv判断 线夹角_opencv计算直线的斜率、截距,与水平线弧度值、角度值
- NLP - 15 分钟搭建中文文本分类模型
- SharePoint数据表组件错误
- c语言放空一个数组,C++语言
- Linux大作业任务书,《Linux系统管理》期末大作业任务书(2014.12)(1).doc
- python服务器搭建qt搭建客户端_利用PythonQT,定制服务器启动工具
- 怎样让jquery mobile 的footer/header 固定?
- 成功解决./nvidia-installer: invalid option: “‐‐no‐opengl‐files“ ERROR: Invalid commandline, please run `
- matlab绘图坐标显示不全的解决方法
- centeros安装mySQL
- 11gR2数据库RMAN完全恢复数据库
- Word排版(小计)
- 大数据时代最全的医学公共数据库合集整理
- STM32HAL库驱动DHT11和BH1750
- mmap()、munmap()的用法、例子
- 攻防世界MISC刷题1-50
- Spring详解(超全面)
- SOAP协议规范介绍
- 确保精确度的五轴机床、类型与行业发展的新曙光
- 益聚星荣:“真实和虚拟的融合是腾讯未来方向”马化腾要进军元宇宙?