Apache ZooKeeper - 线上系统日志清理

本文介绍如何利用ZooKeeper提供的PurgeTxnLog工具类实现数据日志的自动清理,包括通过shell脚本结合crontab定时任务的具体实现方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

PurgeTxnLog

源码分析

在这里插入图片描述

在这里插入图片描述

使用 PurgeTxnLog 则可以在编写清除脚本的时候调用 ZooKeeper 提供的工具类完成日志清理工作。

编写 PurgeTxnLog 类的调用程序,系统就会自动通过 PurgeTxnLog 工具类完成对应日志文件的清理工作。

#!/bin/sh  

java -cp "$CLASSPATH" org.apache.zookeeper.server.PurgeTxnLog 

echo "清理完成" 


crontab

设定 ZooKeeper 快照和数据日志的对应文件夹路径,并通过 shell 脚本和管道和 find 命令 查询对应的日志下的日志文件,这里我们保留最新的 10 条数据日志,其余的全部清理.

#!/bin/bash 

dataDir=/home/zk/zk_data/version-2 

dataLogDir=/home/zk/zk_log/version-2 

ls -t $dataLogDir/log.* | tail -n +$count | xargs rm -f 

ls -t $dataDir/snapshot.* | tail -n +$count | xargs rm -f 

ls -t $logDir/zookeeper.log.* | tail -n +$count | xargs rm -f  

find /home/home/zk/zk_data/version-2 -name "snap*" -mtime +1 | xargs rm -f                              

find /home/home/zk/zk_data/version-2 -name "snap*" -mtime +1 | xargs rm -f               

find /home/home/zk/zk_data/logs/ -name "zookeeper.log.*" -mtime +1 | xargs rm –f     

配置cron : 每天早上的 6 点到 8 点执行

0 6-8 * * * /usr/bin/logsCleanWeek.sh>/dev/null 2>&1 

crontab 定时脚本的方式相对灵活,可以按照业务需求来设置处理日志的维护方式,比如仅希望定期清除 ZooKeeper 服务运行的日志,而不想清除数据快照的文件,则可以通过脚本设置,达到只对数据日志文件进行清理的目的。

在这里插入图片描述

走了~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小工匠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值