首页 > 编程语言 >crontab定时清理文件,java日志,es记录等

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

时间:2022-11-01 10:48:08浏览次数:56  
标签:java 清理 crontab cron sh path 日志 es

简单运维

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

清理java日志 .

# 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 日志 .

# 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里 , 排查要用 ,又不能关. 只能手动定时清理了.

删除整个索引

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

# 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操作,手动释放磁盘空间。

# 删除动作
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 , 可以适当做些注释说明) , 添加如内容:

# 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

crontab cron.cron

确认crontab

crontab -l

标签:java,清理,crontab,cron,sh,path,日志,es
From: https://www.cnblogs.com/ElEGenT/p/16846884.html

相关文章

  • 五款Java后端快速开发平台
    一、JeeSiteJeeSite最开始(2013年)是从Java内容管理系统、快速建站的需求开始的,那时候有挺多人宣称JeeSite太简单,分分钟写一个。JeeSite不断迭代,加入了在线代码生......
  • xxl-job 报:java.net.BindException: Address already in use: bind
    在低版本的xxl-job中,初始化XxlJobSpringExecutor执行器需要在@Bean中加上initMethod="start",destroyMethod="destroy",但是在高版本的xxl-job(如2.1.2)则需......
  • Java实验报告——教务系统(继承)
    一、实验目的使学生进一步了解Java面向对象中继承、封装、抽象、重载的运用。二、实验内容1、设计教师、学生、课程这三个教务系统中的对象类,包括这些对象的属性和方法。实......
  • Java实现HTML页面截图功能
    概述业务开发中,经常会有HTML页面截图,或打印另存为PDF文件的需求。本文即是HTML页面截图需求的技术调研过程的成文。不想看长篇大论的同学,可以直接看Selenium部分,本人最后也......
  • Java实验报告-计算器(AWT图形界面)
     一、实验目的掌握图形用户界面的设计与实现。二、实验内容使用图形界面制作一个计算器并实现相应功能。三、实验步骤publicclassfirstappextendsAppletimplementsAc......
  • Java实验报告--计时器(线程)
    一、实验目的了解Java线程的使用方法二、实验内容1、使用多线程制作一计时器,要求实现文本框输入一个时间(分),计时结束后提示。2、系统通过点击按钮可实现启动计时、暂停、结束......
  • Java的基本使用
    两个部分:一是理论、二是实践;这里的Java讲解来源于2010年之前,之后的改变看官网。一、Java的基本概念1Java发展历史由sun(Stanforduniversitynetwork)开发,1982年2月成立,2009年......
  • 【Python】AES.MODE_CBC和 AES.MODE_ECB 加解密
    AES加解密MODE_CBC和MODE_ECB两种模式的完整实现 importjsonfromCrypto.CipherimportAESimportbase64importbinascii#数据类classMData():def__i......
  • 设计模式-模板模式在Java中的使用示例
    场景模板模式模板模式又叫模板方法模式(TemplateMethodPattern),是指定义一个算法的骨架,并允许子类为一个或者多个步骤提供实现。模板模式使得子类可以在不改变算法......
  • Java解析cron表达式
    概述Cron表达式是一个字符串,以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,即两种语法格式:SecondsMinutesHoursDayofMonthMonthDayofWeekYear,即:秒分时天月星......