定时清理rocketmq日志--crontab

1、背景

之前在部署rocketmq的时候未修改日志路径,导致在用户目录下有日志数据写入。因不方便修改或空间足够可正常写入,但日志量过大需清理,现添加定时任务执行。

2、规划:

目前测试阶段,所以时间是可变的,后面可以根据实际需求修改时间。
用户:root
日志路径:/root/logs/rocketmqlogs/
定时任务脚本存放路径:/root/logs/deletelog.sh

3、脚本编写+定时任务添加

3.1脚本编写

cd /root/logs
vi deletelog.sh

#!/bin/bash
source /etc/profile
#指定路径
log_path="/root/logs/rocketmqlogs/"
max_size=100M
#max_days=90
#获取指定路径下的所有日志文件
#log_files=$(find $log_path -type f \( -size +$max_size -o -mtime +$max_days \))
log_files=$(find $log_path -type f \( -size +$max_size \))
echo "123"
##遍历每个日志文件
for file in $log_files;do
echo "$file"
#echo "234"
rm "$file"
echo "File #file has been deleted as it exceeds 100MB or existing for more than 3 days"
echo "已执行日志清理脚本"
done

3.2定时任务添加

如果不知道定时怎么写,可以看看
[root@localhost mail]# vi /etc/crontab
在这里插入图片描述

设置定时任务:crontab -e

49 16 * * *   /root/logs/deletelog.sh

查看定时任务是否建成:crontab -l

[root@localhost mail]# crontab -e
crontab: installing new crontab
[root@localhost mail]# crontab -l
49 16 * * *   /root/logs/deletelog.sh[root@localhost mail]# ll /root/logs/
total 8
-rwxr-xr-x 1 root root  524 Jun 13 16:35 deletelog.sh
drwxr-xr-x 3 root root 4096 Jun 13 16:49 rocketmqlogs
You have new mail in /var/spool/mail/root

4、问题

日志未清理-红框中的内容还存在
在这里插入图片描述

4.1查看定时任务执行时报错–/bin/sh: root: command not found

vi /var/spool/mail/root

[root@localhost mail]# vi /var/spool/mail/root
From root@localhost.localdomain  Thu Jun 13 15:50:02 2024
Return-Path: <root@localhost.localdomain>
X-Original-To: root
Delivered-To: root@localhost.localdomain
Received: by localhost.localdomain (Postfix, from userid 0)id 02AC92DB77E; Thu, 13 Jun 2024 15:50:01 +0800 (CST)
From: "(Cron Daemon)" <root@localhost.localdomain>
To: root@localhost.localdomain
Subject: Cron <root@localhost> root /root/logs/deletelog.sh
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
Precedence: bulk
X-Cron-Env: <XDG_SESSION_ID=119333>
X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/0>
X-Cron-Env: <LANG=en_US.UTF-8>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
Message-Id: <20240613075002.02AC92DB77E@localhost.localdomain>
Date: Thu, 13 Jun 2024 15:50:01 +0800 (CST)/bin/sh: root: command not found

此处是因为一开始我的脚本中没有写:#!/bin/bash,所以定时任务无法执行。

4.2查看定时任务执行时报错–/bin/sh: /root/logs/deletelog.sh: Permission denied

From root@localhost.localdomain  Thu Jun 13 16:39:01 2024
Return-Path: <root@localhost.localdomain>
X-Original-To: root
Delivered-To: root@localhost.localdomain
Received: by localhost.localdomain (Postfix, from userid 0)id 225FB2DB77C; Thu, 13 Jun 2024 16:39:01 +0800 (CST)
From: "(Cron Daemon)" <root@localhost.localdomain>
To: root@localhost.localdomain
Subject: Cron <root@localhost> /root/logs/deletelog.sh
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
Precedence: bulk
X-Cron-Env: <XDG_SESSION_ID=119344>
X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/0>
X-Cron-Env: <LANG=en_US.UTF-8>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
Message-Id: <20240613083901.225FB2DB77C@localhost.localdomain>
Date: Thu, 13 Jun 2024 16:39:01 +0800 (CST)/bin/sh: /root/logs/deletelog.sh: Permission denied

此处是脚本所在目录的权限不够,无法执行,后赋予755后好了。

终于正确执行,日志打印如下

From root@localhost.localdomain  Thu Jun 13 16:49:01 2024
Return-Path: <root@localhost.localdomain>
X-Original-To: root
Delivered-To: root@localhost.localdomain
Received: by localhost.localdomain (Postfix, from userid 0)id 46BFD2DB77E; Thu, 13 Jun 2024 16:49:01 +0800 (CST)
From: "(Cron Daemon)" <root@localhost.localdomain>
To: root@localhost.localdomain
Subject: Cron <root@localhost> /root/logs/deletelog.sh
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
Precedence: bulk
X-Cron-Env: <XDG_SESSION_ID=119346>
X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/0>
X-Cron-Env: <LANG=en_US.UTF-8>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
Message-Id: <20240613084901.46BFD2DB77E@localhost.localdomain>
Date: Thu, 13 Jun 2024 16:49:01 +0800 (CST)123
/root/logs/rocketmqlogs/rocketmq_client.log.9
File #file has been deleted as it exceeds 100MB or existing for more than 3 days
已执行日志清理脚本
/root/logs/rocketmqlogs/rocketmq_client.log.7
File #file has been deleted as it exceeds 100MB or existing for more than 3 days
已执行日志清理脚本
/root/logs/rocketmqlogs/rocketmq_client.log.5
File #file has been deleted as it exceeds 100MB or existing for more than 3 days
已执行日志清理脚本
/root/logs/rocketmqlogs/rocketmq_client.log.3
File #file has been deleted as it exceeds 100MB or existing for more than 3 days
已执行日志清理脚本
/root/logs/rocketmqlogs/rocketmq_client.log.10
File #file has been deleted as it exceeds 100MB or existing for more than 3 days
已执行日志清理脚本
/root/logs/rocketmqlogs/rocketmq_client.log.8
File #file has been deleted as it exceeds 100MB or existing for more than 3 days
已执行日志清理脚本
/root/logs/rocketmqlogs/rocketmq_client.log.6
File #file has been deleted as it exceeds 100MB or existing for more than 3 days
已执行日志清理脚本
/root/logs/rocketmqlogs/rocketmq_client.log.4
File #file has been deleted as it exceeds 100MB or existing for more than 3 days
已执行日志清理脚本
/root/logs/rocketmqlogs/rocketmq_client.log.2
File #file has been deleted as it exceeds 100MB or existing for more than 3 days
已执行日志清理脚本

5、小结

  • 编写脚本时一定要记得加#!/bin/bash。
  • 编写脚本后一定要查看是否有执行权限。
  • 如果还是执行不起来,注意是否环境变量掉了。【可以写到脚本里,每次执行时加载环境变量】

6、链接

如何更改日志路径,以下链接供您参考,5.0.0版本及5.1.2版本。
链接: rocketmq-5.0.0的dleger高可用集群部署
链接: rocketmq-5.1.2的dleger高可用集群部署

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/26973.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DTU为何应用如此广泛?

1.DTU是什么 DTU(数据传输单元)是一种无线终端设备&#xff0c;它的核心功能是将串口数据转换为IP数据或将IP数据转换为串口数据&#xff0c;并通过无线通信网络进行传送。DTU通常内置GPRS模块&#xff0c;能够实现远程数据的实时传输&#xff0c;广泛应用于工业自动化、远程监…

Redis高级特性和应用:慢查询、Pipeline、事务、Lua

Redis提供了许多高级特性&#xff0c;可以帮助优化和管理系统性能。本文将介绍Redis的慢查询、Pipeline、事务和Lua脚本的使用及其相关配置。 Redis的慢查询 慢查询日志是开发和运维人员定位系统慢操作的重要工具。Redis也提供了类似的功能&#xff0c;通过记录超过预设阀值的…

【Kafka专栏 08】ZooKeeper的Watch机制:不就是个“小喇叭”吗?

作者名称&#xff1a;夏之以寒 作者简介&#xff1a;专注于Java和大数据领域&#xff0c;致力于探索技术的边界&#xff0c;分享前沿的实践和洞见 文章专栏&#xff1a;夏之以寒-kafka专栏 专栏介绍&#xff1a;本专栏旨在以浅显易懂的方式介绍Kafka的基本概念、核心组件和使用…

LeetCode 619, 58, 24

目录 619. 只出现一次的最大数字题目链接表要求知识点思路代码使用where限制&#xff1a;使用having限制&#xff1a; 58. 最后一个单词的长度题目链接标签Java.split()思路代码 不使用Java的API思路代码 24. 两两交换链表中的节点题目链接标签要求思路代码 619. 只出现一次的最…

【blender特效】卡通火焰

核心思想就是通过多个不同缩放尺寸的沃罗诺伊叠加&#xff0c;分别构成火焰的大型&#xff0c;中型和小型&#xff08;形状&#xff09;&#xff0c;最后通过自发光纹理实现火焰加亮。 用的是ev渲染&#xff0c;完全可以把噪音贴图都烘焙出来&#xff0c;自己改改shader就可以扔…

华为OD刷题C卷 - 每日刷题 29(机器人仓库搬砖,爱吃蟠桃的孙悟空)

1、&#xff08;机器人仓库搬砖&#xff09;&#xff1a; 这段代码是解决“机器人仓库搬砖”的问题。它提供了一个Java类Main&#xff0c;其中包含main方法和getMinEnergy方法&#xff0c;用于计算机器人每小时充能的最小能量格数&#xff0c;以确保在8小时内搬完所有砖块。 …

C++14 新特性:std::make_unique 和 constexpr

今天介绍的 std::unique_ptr 和 constexpr的用法比较简单&#xff0c;所以放到一篇文章中进行介绍。 1、std::make_unique 首先来看 std::unique_ptr&#xff0c;在 C11 中引入了智能指针和std::unique_ptr&#xff0c;为资源管理提供了更安全、更简洁的手段。但是 C11 缺少了…

STM32无法烧写程序的故障排除

如果你在使用STM32微控制器时遇到无法烧写程序的问题&#xff0c;可以按以下步骤进行故障排除&#xff1a; 1. 确认硬件连接 检查电源&#xff1a;确保STM32板子正确供电。调试器连接&#xff1a;确认ST-LINK调试器或其他编程工具与STM32开发板的连接无误&#xff0c;尤其是S…

jQuery如何实现一个轮播图左右翻页的功能

当使用jQuery来实现一个轮播图左右翻页的功能时&#xff0c;你可以遵循以下步骤&#xff1a; HTML结构&#xff1a;首先&#xff0c;你需要创建一个HTML结构来包含轮播图的图片。 <div class"carousel"> <div class"carousel-images"> <…

利用python爬虫采集苹果公司各产品销售收入统计报告

数据为2013年到2022年苹果公司各产品&#xff08;iPhone、iPad、Mac等&#xff09;及服务的销售收入。iPhone是苹果公司销售收入最高的产品。 数据统计单位为&#xff1a;亿美元 。 数据说明&#xff1a; 数据整理自苹果公司历年10-K文件&#xff0c;每年10-K文件可能对之前年…

DP:两个数组的dp问题

解决两个数组的dp问题的常用状态表示&#xff1a; 1、选取第一个字符串[0-i]区间以及第二个字符串[0,j]区间作为研究对象 2、根据题目的要求确定状态表示 字符串dp的常见技巧 1、空串是有研究意义的&#xff0c;引入空串可以帮助我们思考虚拟的边界如何进行初始化。 2、如…

【odoo】odoo常用的ORM方法

概要 在Odoo中&#xff0c;ORM&#xff08;对象关系映射&#xff0c;Object-Relational Mapping&#xff09;方法是一种将Python对象映射到数据库表的方法。Odoo的ORM系统使开发者能够使用高级的Python代码而不是复杂的SQL语句来操作数据库。Odoo的ORM方法主要用于创建、读取、…

c#数组的使用

前言 我们在开发c#程序的过程中经常需要使用数组&#xff0c;这个数组就是用来存储多个值的一种数据类型。 1、一维数组 1.1 一维数组的声明 int[] array1;//数组的声明 1.2 一维数组的赋值 int[] array2 new int[] { 1, 2, 3, 3 };//数组的赋值 int[] array3 new int[…

云服务器Ubuntu系统的vim-plus(youcompleteme)完整安装

一. 安装vim-plus PS&#xff1a;需要在那个用户下配置vim-plus&#xff0c;就到那个用户下执行代码 git clone https://github.com/chxuan/vimplus.git ~/.vimplus cd ~/.vimplus ./install.sh二. 解决没有代码自动补全的问题 随便创建一个Test.cpp文件&#xff0c;vim打开…

图像生成新篇章:Stable Diffusion 3 Medium开源评析

摘要 在数字艺术与人工智能的交汇点上&#xff0c;Stable Diffusion 3&#xff08;SD3&#xff09;的开源无疑是一场技术革新的盛宴。就在3月份&#xff0c;我撰写了一篇博文&#xff0c;深入探讨了SD3的技术报告内容与介绍&#xff0c;文章发表在CSDN博客上&#xff0c;https:…

如何用多媒体沙盘实现智能交互体验?

随着多媒体技术在内容展示领域的迅猛进步&#xff0c;智能化信息交互方式已然跃升为公众瞩目的焦点&#xff0c;而展厅作为信息传递与产品展示的核心阵地&#xff0c;正面临着提升交互体验、强化信息传递效果的迫切需求。因此&#xff0c;以多媒体沙盘、LED屏幕等创新装置为媒介…

C/C++图形渲染引擎开发方向有钱景吗?

在当前的技术环境下&#xff0c;特别是在图形渲染引擎开发领域&#xff0c;的确存在一些挑战和变化。我这里有一套编程入门教程&#xff0c;不仅包含了详细的视频 讲解&#xff0c;项目实战。如果你渴望学习编程&#xff0c;不妨点个关注&#xff0c;给个评论222&#xff0c;私…

Python和OpenCV图像分块之图像边长缩小比率是2

import cv2 import numpy as npimg cv2.imread("F:\\mytupian\\xihuduanqiao.jpg") # 低反光 cv2.imshow(image, img) # # 图像分块 # dst np.zeros(img.shape, img.dtype) ratio 2 #图像边长缩小比率是2&#xff0c;也就是一张图片被分割成四份 height, wi…

证照之星是一款很受欢迎的证件照制作软件

证照之星是一款很受欢迎的证件照制作软件&#xff0c;证照之星可以为用户提供“照片旋转、裁切、调色、背景处理”等功能&#xff0c;满足用户对证件照制作的基本需求。本站证照之星下载专题为大家提供了证照之星电脑版、安卓版、个人免费版等多个版本客户端资源&#xff0c;此…

AI图书推荐:用ChatGPT按需DIY定制来赚钱

《用ChatGPT按需DIY定制来赚钱》ChatGPT Print Money Method &#xff0c;作者是Cindy Donovan 。 下面是图书概要&#xff1a; ### 第一章&#xff1a;什么是按需印刷以及ChatGPT如何使其变得简单易行&#xff1f; 本章介绍了按需印刷的商业模式&#xff0c;即仅在收到订单时…