- 因sql日志频繁写入导致磁盘空间不足,后续资源无法写入,导致错误
- 线上环境要关掉debug,防止错误泄露
- 增加资源监控脚本
#!/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