错误记录

日志导致磁盘爆满引发的错误

2025-11-06 16:24:21    8    0    0
  1. 因sql日志频繁写入导致磁盘空间不足,后续资源无法写入,导致错误
  2. 线上环境要关掉debug,防止错误泄露
  3. 增加资源监控脚本
#!/bin/bash

##############################################
# 资源监控
##############################################

# 配置日志文件
LOG_FILE="/var/log/supervisory_control.log"
MAX_LOG_SIZE=10485760  # 10MB

# 安全配置:设置安全路径
export PATH="/usr/bin:/bin:/usr/sbin:/sbin"

# 日志函数
log_message() {
    local level=$1
    local message=$2
    local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
    
    # 创建日志目录(如果不存在)
    local log_dir=$(dirname "$LOG_FILE")
    if [ ! -d "$log_dir" ]; then
        mkdir -p "$log_dir" 2>/dev/null || {
            echo "无法创建日志目录: $log_dir" >&2
            return 1
        }
    fi
    
    # 检查日志文件大小并轮转
    if [ -f "$LOG_FILE" ] && [ $(stat -c%s "$LOG_FILE" 2>/dev/null || echo 0) -gt $MAX_LOG_SIZE ]; then
        mv "$LOG_FILE" "${LOG_FILE}.old" 2>/dev/null
    fi
    
    # 写入日志
    echo "[$timestamp] [$level] $message" | tee -a "$LOG_FILE" 2>/dev/null
}

# 检查必需命令是否存在
check_commands() {
    local commands=("top" "df" "fr