Linux清理文件小记

事出有因

组内使用的jenkins自动构建失败,查看日志提示“java.io.IOException: 设备上没有空间”,搜索前辈经验得知是虚拟机空间不足导致的。在扩容和删除无用文件之间选择了后者。

通过本次问题学到的linux命令知识

df -h #查看磁盘使用情况

du -sh #查看当前文件夹总大小
du -h --max-depth=1 | sort -hr #将当前文件夹下的内容(文件夹、文件)按从大到小的顺序列出

说明:du命令的-h参数用于将大小按b, mb, gb这样容易看的形式打印出来;—max-depth参数设置展开层数,默认会展开到最深。

ls | grep -v keep | xargs rm #删除keep文件之外的所有文件

说明: ls先得到当前的所有文件和文件夹的名字, grep -v keep,进行grep正则匹配查找keep,-v参数决定了结果为匹配之外的结果,也就是的到了keep之外的所有文件名,然后 xargs用于从 标准输入获得参数 并且传递给后面的命令,这里使用的命令是 rm,然后由rm删除前面选择的文件。

grep -E “正则1|正则2|正则3” #grep命令匹配多个关键字

处理过程

到根目录下开始“du -h --max-depth=1 | sort -hr”查找无用文件聚集区,因为这个虚拟机主要就是用来跑jenkins的,所以我初步判断应该就是jenkins的构建历史占据最大空间。但并不是我搭建的jenkins,所以不清楚相关的构建历史文件放在哪,就只好一层层找一下,最终确定我这台机器的jenkins构建历史路径是“/opt/jenkins/jobs/”。进入该目录可看到jenkins的各项构建任务,在构建任务的builds文件夹下,存放着每次构建的历史。我需要保留比较新的几次,删除其他构建,于是用到了“ls | grep -v keep | xargs rm”命令,这不是linux反选删除的唯一方式,但我采用的是这一种。

参考博客

  1. Jenkins 无法使用 No space left on device 分析解决方案 https://blog.csdn.net/jjc120074203/article/details/93201799
  2. centos磁盘文件大小查看及排序 https://blog.csdn.net/kucoll/article/details/120078387
  3. linux shell下除了某个文件外的其他文件全部删除的命令 https://blog.csdn.net/taiyang1987912/article/details/41488395
  4. grep 满足 或 排除多个关键字 https://blog.csdn.net/allen_a/article/details/78623422

实际不止以上四篇,但要解决本次的问题以上四篇就够了,其他参考的都是一些细节知识盲点,就不列出了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值