crontab定时清理文件,java日志,es记录等

简单运维#

开发环境硬件配置小 , 经常要清理空间 . 写个简单的清理脚本去运维 .

清理java日志 .#

Copy
# cleanLog.sh # 日志目录 LOG_DIR=/path/to/log cd $LOG_DIR # 历史日志的文件格式是 , app-xxxx-xx-xx.log. 捞大于1k的文件去清空 for logfile in `find ./ -size +1k -name "app*.log"`;do cat /dev/null > $logfile echo $logfile "清理完成" done

清理 gc 日志 .#

Copy
# cleanGC.sh # 日志目录 LOG_DIR=/path/to/gc cd $LOG_DIR # 历史日志的文件格式是 , gc-xxxx-xx-xx.log. 捞大于1k的文件去清空 for gcfile in `find ./ -size +1k -name "gc*.log"`;do cat /dev/null > $gcfile echo $gcfile "清理完成" done

清理 es 空间 .#

有些流水日志写到es里 , 排查要用 ,又不能关. 只能手动定时清理了.

删除整个索引#

有些是按时间划分了冷热数据 . 历史数据直接删了就行了. 执行删除就会释放空间的.

Copy
# cleanES.sh # 删除前一天的索引数据 DAY=`date -d -1"days" +%Y-%m-%d` curl -X DELETE http://127.0.0.1:9200/DailyAccount-$DAY

只保留最近数据#

有些只有一个索引, 那么只保留最近数据 .

1)delete_by_query设置检索近100天数据;

2)执行forcemerge操作,手动释放磁盘空间。

Copy
# 删除动作 curl -H'Content-Type:application/json' -d'{ "query": { "range": { "pt": { "lt": "now-100d", "format": "epoch_millis" } } } } ' -XPOST "http://127.0.0.1:9200/logstash_*/_delete_by_query?conflicts=proceed" # merge动作 curl -XPOST 'http://127.0.0.1:9200/_forcemerge?only_expunge_deletes=true&max_num_segments=1'

crontab 命令#

加 crontab 执行脚本, 创建文件 cron.cron(个人建议使用文件的方式创建cron , 可以适当做些注释说明) , 添加如内容:

Copy
# cron.cron文件 # 清理日志 0 0 1 * * sh /path/to/scripts/cleanLog.sh # 清理GC 0 0 2 * * sh /path/to/scripts/cleanGC.sh # 清理ES 0 0 3 * * sh /path/to/scripts/cleanES.sh

将脚本添加到 crontab

Copy
crontab cron.cron

确认crontab

Copy
crontab -l
posted @   孙行者、  阅读(382)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示
CONTENTS