定时删除Kafka logs中的日志
最近发现,几年前部署的kafka logs 文件夹中 有大量的 kafka 日志文件, server.log controller.log 等每小时生成一个 几年下来,好几万个文件,网上找了一下 kafka 自身没有清理这些日志的功能,所以写个 sh 脚本 定时清理30天前的日志文件。
脚本如下
#!/bin/sh
find /bigdata/kafka/logs/ -mtime +30 -name "server.log.*" -exec rm -rf {} \;
find /bigdata/kafka/logs/ -mtime +30 -name "controller.log.*" -exec rm -rf {} \;
find /bigdata/kafka/logs/ -mtime +30 -name "log-cleaner.log.*" -exec rm -rf {} \;
find /bigdata/kafka/logs/ -mtime +30 -name "state-change.log.*" -exec rm -rf {} \;
将上面的脚本 存到 sh 文件中
vi del-log.sh
设置定时任务 每天 4点15分执行
crontab -e
15 4 * * * /opt/soft/log/del-log.sh
find:linux的查找命令,用户查找指定条件的文件;
/bigdata/kafka/logs/:想要进行清理的任意目录;
-mtime:标准语句写法;
+30:查找30天前的文件,这里用数字代表天数;
"*.log":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件,这个可以灵活运用,举一反三;
-exec:固定写法;
rm -rf:强制删除文件,包括目录;
{} \; :固定写法,一对大括号+空格+\+;
参考 https://www.cnblogs.com/JetpropelledSnake/p/11113677.html