
centos7中根据文件大小排序以及jenkins配置每周删除一次jobs日志信息
发布日期:2021-05-07 04:26:14
浏览次数:25
分类:精选文章
本文共 4352 字,大约阅读时间需要 14 分钟。
环境
操作系统:win7
虚拟机:centos7前言 预备知识
按照文件大小降序
du * -sh | sort -hr #h 表示以人可读的形式显示出来
按创建时间排序
ls -alc # 按创建时间排序
查看文件大小
du -sh # 查看文件大小
根据文件的创建时间(修改时间)排序升序,取前100条,并且指定匹配名称为数字的,并删除
rm -rf `ls -lc | head -n 100 | grep -w '[1-9]'`
查询时间段为2016年3月01号到2017年4月8号内的名称为数字的目录
find . -type d -newermt '01 Mar 2016' ! -newermt '08 Apr 2017' -print | grep -w '[1-9]*'
显示文件时,包含年月日
ls -l --time-style=full
–time-style参数:
full-iso 精确显示年月日时分秒纳秒及时区long-iso 显示年月日时分iso 默认就是iso,显示月日时分locale 按当前系统环境区域设置显示+Format 自定义格式显示
full-iso显示效果:
ls -l --time-style=full-isodrwxr-xr-x. 2 yutao yutao 6 2017-03-21 11:02:00.912981382 +0800 公共drwxr-xr-x. 2 yutao yutao 6 2017-03-21 11:02:00.911981382 +0800 模板drwxr-xr-x. 2 yutao yutao 6 2017-03-21 11:02:00.912981382 +0800 视频drwxr-xr-x. 2 yutao yutao 6 2017-03-21 11:02:00.912981382 +0800 图片drwxr-xr-x. 2 yutao yutao 6 2017-03-21 11:02:00.912981382 +0800 文档drwxr-xr-x. 2 yutao yutao 172 2017-04-05 18:51:58.592643038 +0800 下载drwxr-xr-x. 2 yutao yutao 6 2017-03-21 11:02:00.912981382 +0800 音乐drwxr-xr-x. 2 yutao yutao 6 2017-03-21 11:02:00.911981382 +0800 桌面
long-iso显示效果
ls -l --time-style=long-isodrwxr-xr-x. 2 yutao yutao 6 2017-03-21 11:02 公共drwxr-xr-x. 2 yutao yutao 6 2017-03-21 11:02 模板drwxr-xr-x. 2 yutao yutao 6 2017-03-21 11:02 视频drwxr-xr-x. 2 yutao yutao 6 2017-03-21 11:02 图片drwxr-xr-x. 2 yutao yutao 6 2017-03-21 11:02 文档drwxr-xr-x. 2 yutao yutao 172 2017-04-05 18:51 下载drwxr-xr-x. 2 yutao yutao 6 2017-03-21 11:02 音乐drwxr-xr-x. 2 yutao yutao 6 2017-03-21 11:02 桌面
自定义
ls -l --time-style="+%Y-%m-%d %H:%l:%S"drwxr-xr-x. 2 yutao yutao 6 2017-03-21 11:11:00 公共drwxr-xr-x. 2 yutao yutao 6 2017-03-21 11:11:00 模板drwxr-xr-x. 2 yutao yutao 6 2017-03-21 11:11:00 视频drwxr-xr-x. 2 yutao yutao 6 2017-03-21 11:11:00 图片drwxr-xr-x. 2 yutao yutao 6 2017-03-21 11:11:00 文档drwxr-xr-x. 2 yutao yutao 172 2017-04-05 18: 6:58 下载drwxr-xr-x. 2 yutao yutao 6 2017-03-21 11:11:00 音乐drwxr-xr-x. 2 yutao yutao 6 2017-03-21 11:11:00 桌面
查询7天前改动的文件夹,并列出详情、排序
[root@master01 builds]# find . -mtime +7 -type d -ls|sort435016 4 drwxr-xr-x 2 jenkins jenkins 4096 Apr 10 16:42 ./456435045 4 drwxr-xr-x 2 jenkins jenkins 4096 Apr 11 12:00 ./457435051 4 drwxr-xr-x 2 jenkins jenkins 4096 Apr 11 13:56 ./458435062 4 drwxr-xr-x 2 jenkins jenkins 4096 Apr 11 16:11 ./459
列举上面那些是为了以下需求做铺垫。
需求
最近jenkins
出现没法构建的问题,点击立即构建
没有反应。后来进入系统设置
页面,看到提示,原来磁盘空间忙了。
1、首先我们需要知道构建的日志存在到哪里了?
2、公司要求,保留一周的记录。查找jenkins的日志存放位置
由于当初我安装jenkins
使用的是rpm
进行安装。
rpm -ql jenkins/etc/init.d/jenkins/etc/logrotate.d/jenkins/etc/sysconfig/jenkins/usr/lib/jenkins/usr/lib/jenkins/jenkins.war/usr/sbin/rcjenkins/var/cache/jenkins/var/lib/jenkins #存放的是构建时的日志/var/log/jenkins #jenkins 运行时是日志
所以,我们需要进入cd /var/lib/jenkins/jobs
这里面的每个文件夹就是我们配置的job构建后的日志存储的地方(里面的builds
)
我们在jenkins
中先新建一个job,专门用来执行删除日志的脚本。
Poll SCM
,而应该使用Build periodically
====2018年3月6日=====end===== job配置好了后,我们就需要写脚本啦!
思路: ①先获取改动时间在7天前的文件。 ②因为我们也需要知道,我们每次到底删除了哪些日志,所以我们还需要把删除的文件的时间显示到年月日。便于我们知道,删除的文件对不对。查询改动时间为7天前的目录并列出详细信息时间精确到精确显示年月日时分秒纳秒及时区并写入到文件名为yutao中
以下命令执行的目录是:/var/lib/jenkins/jobs
# 因为我们要删除的是构建日志,所以需要查询每个`job`中`builds`路径中的日志find */builds/* -mtime +7 -type d| xargs ls -dl --full-time>yutao#find */builds/* -mtime +7 -type d| xargs ls -dl --full-time|sortdrwxr-xr-x 2 jenkins jenkins 4096 2016-10-18 10:31:47.305175960 +0800 ggblog-test/builds/38drwxr-xr-x 2 jenkins jenkins 4096 2016-10-18 10:36:06.165175675 +0800 ggblog-test/builds/39drwxr-xr-x 2 jenkins jenkins 4096 2016-10-18 10:40:07.867175411 +0800 ggblog-test/builds/40drwxr-xr-x 2 jenkins jenkins 4096 2016-10-18 10:47:29.561174927 +0800 ggblog-test/builds/41
上面的方法有个问题:
find */builds/* -mtime +7 -type d| xargs ls -dl --full-time|sort#即使find命令什么都没有查到,由于命令ls -d是显示当前目录的属性,所以它会显示为:drwxr-xr-x 51 jenkins jenkins 4096 2017-04-20 14:13:46.495914200 +0800 .
也就是说即使什么都没有查到,依然会显示当前目录.
,.
表示的就是当前目录。
当然我们要进行删除操作,只需要这样写:
rm -rf `find */builds/* -mtime +7 -type d`
但是,作为优秀的程序员,我们需要知道我们删除的文件详情。所以我们需要打印删除的文件详细。
完整脚本:#!/bin/bashcd /var/lib/jenkins/jobsecho 'delete log start'files=`find */builds/* -mtime +7 -type d`deletelog=`find */builds/* -mtime +7 -type d | xargs ls -dl --full-time|sort|xargs|sed "s/drwxr/\n\rdrwxr/g"`if [ ! "$files" = "" ]thenecho '即将删除的文件:'echo ${deletelog}rm -rf ${files}elseecho '没有文件要删除'fiecho 'delete log end'
效果:
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年04月16日 22时56分33秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
2020版nodejs12.18.3安装配置教程
2021-05-14
iview组件库中,Form组件里的Input,无法正确绑定on-enter事件
2021-05-14
记录-基于springboot+vue.js实现的超大文件分片极速上传及流式下载
2021-05-14
JavaScript高级程序设计第四版学习记录-第九章代理与反射
2021-05-14
怎么解决Windows 10文件/文件夹正在使用无法删除
2021-05-14
F28335第九篇——通用IO
2021-05-14
STM32F429第十一篇之数据类型
2021-05-14
web项目开发记录
2021-05-14
matlab函数:sprintf详解
2021-05-14
matlab函数:fix 向0取整
2021-05-14
ORCAD创建元件库时,格点对不起怎么办
2021-05-14
Allegro中如何消除器件本身Pin间距报错
2021-05-14
AD中拖动器件,无法移动在一起如何解决
2021-05-14
linux--练习001-基础类型
2021-05-14
python内存地址和编译字节码
2021-05-14
Flask--简介
2021-05-14
Flask模板--过滤器与测试器
2021-05-14
16 python基础-恺撒密码
2021-05-14
06.1 python基础--结构控制
2021-05-14
Frame--Api框架
2021-05-14