#!/bin/bash
# 东方通中间件嵌入式监控脚本
# 功能:监测CPU和内存使用率,保存到/log/dftqr.txt
# 设置文件夹和文件路径
LOG_DIR="/log"
LOG_FILE="$LOG_DIR/dftqr.txt"
PROCESS_NAME="skaction" # 东方通中间件嵌入式进程名
# 创建日志目录(如果不存在)
if [ ! -d "$LOG_DIR" ]; then
mkdir -p "$LOG_DIR"
if [ $? -ne 0 ]; then
echo "错误:无法创建日志目录 $LOG_DIR" >&2
exit 1
fi
echo "已创建日志目录: $LOG_DIR"
fi
# 覆盖已存在的日志文件
> "$LOG_FILE"
# 获取当前时间
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
# 检查进程是否存在
PID=$(pgrep -f "$PROCESS_NAME")
if [ -z "$PID" ]; then
echo "$TIMESTAMP - 错误: 未找到 $PROCESS_NAME 进程" >> "$LOG_FILE"
exit 1
fi
# 获取CPU使用率
CPU_USAGE=$(ps -p "$PID" -o %cpu --no-headers | awk '{print $1}')
# 获取内存使用率
MEM_USAGE=$(ps -p "$PID" -o %mem --no-headers | awk '{print $1}')
# 获取内存使用量(MB)
MEM_USAGE_MB=$(ps -p "$PID" -o rss --no-headers | awk '{printf "%.2f", $1/1024}')
# 写入日志文件
{
echo "=== 东方通中间件监控报告 ==="
echo "生成时间: $TIMESTAMP"
echo "进程名称: $PROCESS_NAME"
echo "进程ID: $PID"
echo "CPU使用率: $CPU_USAGE%"
echo "内存使用率: $MEM_USAGE%"
echo "内存使用量: $MEM_USAGE_MB MB"
echo "============================"
} >> "$LOG_FILE"
echo "监控数据已保存到: $LOG_FILE"