功能介绍
- 通过配置清理日志规则,配合cron,实现磁盘达到阈值自动清理
- 支持自定义邮件收件人
- 支持规则自定义
- 支持全局规则设定
- 禁止根目录和一级目录
- 支持debug,该模式下,只显示满足条件的文件,但不执行删除或清空
开发环境
- Goland 2020.1
- go version go1.14.3 darwin/amd64
- Mac
规则说明
-
dir : /workspace/logs/webapps
suffix : .log
beforeTime : 1300
mode : rm
retain : 0
minSize : 0
debug : true
# dir 目录 (必填),目录最少2级,限制根目录和一级目录
# suffix 后缀 (必填:二选1:前缀或后缀,后缀优先),允许的后缀:".log",".json",".gz",".tgz",".tar",".zip",".rar",".mp4",".out",".bz2",".txt"
# prefix 前缀 (必填:二选1:前缀或后缀,后缀优先),前缀必须包含 . 且文件的后缀长度大于8 ,避免勿删,例如:log.inc.java ,后缀为java,会跳过文件
# beforeTime 查找多少分钟前的文件 (选填,默认0,单位分钟)
# mode 执行方式,rm=删除,null=清空-写成空文件,waring=告警-只告警不处理 (选填,默认 null)
# retain 保留文件个数 (选填,默认0)
# minSize 最小文件大小,大于这个值才会执行 (选填,默认 0,单位 Mb)
# debug 测试模式,开启=true,关闭=false 或 不设置 (选填,默认:false)只显示要执行的结果,不实际执行
执行方法
clear-disk --help
-config-dir string
配置目录 (default "./rules/")
-config-file string
指定配置文件
-email string
指定邮箱收件人
-help
显示帮助
-min-size float
阈值比例,例如:磁盘使用率大于90%后执行 (default 90)
举例:默认:遍历配置目录,配置目录为当前相对目录./rules/
clear-disk
举例:指定配置文件
clear-disk --config-file=user.yml
举例:指定配置目录
clear-disk --config-dir=/workspace/agent/auto-clear-log/rules/
举例:设定阈值,磁盘超过90之后,执行清理,小于阈值时,不做任何操作
clear-disk --min-size=90
举例:邮件收件人,磁盘超过90之后,执行清理之后,自动发邮件通知,多个地址用逗号隔开
清理之后,磁盘容量如果小于阈值90,则发普通邮件标题,如果还是超过阈值,则标题包含 【磁盘容量不足警告】
clear-disk --email=test1@sina.com,test2@sina.com
执行结果
[开始时间] 2020-07-31 21:30:02
+-----------------------------------------------------------------------+
[磁盘信息] 使用比例: 52.8%, 磁盘容量:78.6G, 剩余容量: 35.5G
+-----------------------------------------------------------------------+
[配置文件] ./rules/default.yml
+-----------------------------------------------------------------------+
[清空] 2020-07-31 16:30:02 ➜ /workspace/logs/webapps/a.access.log 104.0M [Debug]
[忽略] 2020-07-31 16:30:01 ➜ /workspace/logs/webapps/b.log 27.7M
+-----------------------------------------------------------------------+
[成功清理] 0B
[预估清理] 485.3M
[完成时间] 2020-07-31 21:30:05
更多内容请看下篇文章
有疑问加站长微信联系(非本文作者)