【CentOS系统下Tomcat日志管理的最佳实践:自动清理catalina.out】

CentOS系统下Tomcat日志管理的最佳实践:自动清理catalina.out

  • 清理脚本脚本
  • [在 CentOS 系统上设置和使用这个脚本的步骤](#在 CentOS 系统上设置和使用这个脚本的步骤)

清理脚本脚本

bash 复制代码
#!/bin/bash

# 设置变量
LOG_FILE="/opt/tomcat/logs/catalina.out"
MAX_SIZE=$((10 * 1024 * 1024 * 1024))  # 10GB in bytes

# 检查日志文件大小
file_size=$(du -b "$LOG_FILE" | cut -f1)

if [ $file_size -gt $MAX_SIZE ]; then
    echo "Log file size ($file_size bytes) exceeds 10GB. Cleaning..."
    
    # 备份原始日志文件,如果不需要备份,请使用#注释以下代码
    cp "$LOG_FILE" "${LOG_FILE}.bak"
    
    # 清空原始日志文件
    echo "" > "$LOG_FILE"
    
    echo "Log file has been cleaned and backed up to ${LOG_FILE}.bak"
else
    echo "Log file size ($file_size bytes) is within limits. No action needed."
fi

在 CentOS 系统上设置和使用这个脚本的步骤

  1. 创建脚本文件:

    复制代码
    sudo nano /opt/tomcat/log_cleaner.sh

    然后将上面的脚本内容粘贴到这个文件中。

  2. 保存文件并退出编辑器(在 nano 中,按 Ctrl+X,然后 Y,再按 Enter)。

  3. 给脚本添加执行权限:

    复制代码
    sudo chmod +x /opt/tomcat/log_cleaner.sh
  4. 测试脚本是否正常工作:

    复制代码
    sudo /opt/tomcat/log_cleaner.sh
  5. 设置 cron 任务来定期运行脚本。打开 crontab 编辑器:

    复制代码
    sudo crontab -e
  6. 添加以下行来每天凌晨 2 点运行脚本:

    复制代码
    0 2 * * * /opt/tomcat/log_cleaner.sh >> /opt/tomcat/log_cleaner.log 2>&1
  7. 保存并退出 crontab 编辑器。

这个设置将每天凌晨 2 点检查 catalina.out 文件的大小,如果超过 10GB,就会清理它并创建一个备份。

几点注意事项:

  1. 确保运行 Tomcat 的用户对 /opt/tomcat/logs/ 目录有读写权限。
  2. 定期检查 /opt/tomcat/log_cleaner.log 文件,查看脚本的运行情况。
  3. 考虑定期清理或压缩旧的备份文件,以防它们占用过多磁盘空间。
相关推荐
此刻觐神2 分钟前
IMX6ULL开发板学习-01(Linux文件目录和目录相关命令)
linux·服务器·学习
2401_8920709811 分钟前
【Linux C++ 日志系统实战】高性能文件写入 AppendFile 核心方法解析
linux·c++·日志系统·文件写对象
航Hang*14 分钟前
第3章:Linux系统安全管理——第2节:部署代理服务
linux·运维·服务器·开发语言·笔记·系统安全
zjnlswd24 分钟前
tkinter学习案例--笔记代码
笔记·学习
-ONLY-¥31 分钟前
PostgreSQL运维全攻略:从基础操作到远程配置
linux
独小乐1 小时前
009.中断实践之实现按键测试|千篇笔记实现嵌入式全栈/裸机篇
linux·c语言·驱动开发·笔记·嵌入式硬件·arm
披着羊皮不是狼1 小时前
将Ubuntu从C盘移动到D盘
linux·运维·ubuntu
无聊大侠hello world1 小时前
Yu-AI-Agent 项目(AI 恋爱大师智能体) · 学习笔记
人工智能·笔记·学习
l2ohvef1 小时前
Windows 7 虚拟机 VMware Tools 安装失败:无法自动安装VSock 驱动程序
linux·运维·服务器
嵌入式×边缘AI:打怪升级日志1 小时前
从零开始写Linux字符设备驱动:一个不操作硬件的Hello驱动
linux·运维·数据库