canal日志太多,导致磁盘被打满

162 阅读1分钟

canal 执行的日志太多了,都在canal-adapter/logs/adapter/下面,占用很多,动不动就把磁盘给打满了。 为了解决这个问题,可以通过一个定时脚本执行:

#!/bin/bash

# 获取当前日期
current_date=$(date +%s)

# 日志目录
log_dir="/root/package/canal-adapter/logs/adapter/"

# 遍历日志目录下的所有文件夹
for dir in ${log_dir}*/; do
  # 提取文件夹名(假设文件夹名为日期)
  dir_name=$(basename $dir)

  # 转换文件夹名为时间戳
  dir_date=$(date -d $dir_name +%s 2>/dev/null)

  # 检查转换是否成功(避免处理非日期格式的文件夹)
  if [[ $? -eq 0 ]]; then
    # 计算文件夹日期与当前日期的差值(单位:天)
    days_diff=$(( (current_date - dir_date) / 86400 ))

    # 如果文件夹日期超过3天,则删除该文件夹
    if [[ $days_diff -gt 3 ]]; then
      echo "Deleting folder: $dir"
      rm -rf "$dir"
    fi
  else
    echo "Skipping non-date folder: $dir"
  fi
done

echo "Deleting folder root/logs/rocketmqlogs/otherdays/"
rm -rf /root/logs/rocketmqlogs/otherdays/*