优化稳定性部署
This commit is contained in:
48
monitor.sh
Executable file
48
monitor.sh
Executable file
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
|
||||
# PromptForge 服务监控脚本
|
||||
LOG_FILE="/home/renjianbo/aiapply/logs/monitor.log"
|
||||
DATE=$(date '+%Y-%m-%d %H:%M:%S')
|
||||
|
||||
# 创建日志目录
|
||||
mkdir -p /home/renjianbo/aiapply/logs
|
||||
|
||||
# 检查服务状态
|
||||
if ! netstat -tlnp | grep -q :3000; then
|
||||
echo "[$DATE] ❌ 服务未运行,尝试重启..." >> $LOG_FILE
|
||||
cd /home/renjianbo/aiapply
|
||||
pm2 restart promptforge
|
||||
sleep 5
|
||||
if netstat -tlnp | grep -q :3000; then
|
||||
echo "[$DATE] ✅ 服务重启成功" >> $LOG_FILE
|
||||
else
|
||||
echo "[$DATE] ❌ 服务重启失败" >> $LOG_FILE
|
||||
fi
|
||||
else
|
||||
echo "[$DATE] ✅ 服务运行正常" >> $LOG_FILE
|
||||
fi
|
||||
|
||||
# 检查内存使用
|
||||
MEMORY_USAGE=$(free | grep Mem | awk '{printf "%.1f", $3/$2 * 100.0}')
|
||||
if (( $(echo "$MEMORY_USAGE > 80" | bc -l) )); then
|
||||
echo "[$DATE] ⚠️ 内存使用率过高: ${MEMORY_USAGE}%" >> $LOG_FILE
|
||||
fi
|
||||
|
||||
# 检查磁盘空间
|
||||
DISK_USAGE=$(df / | tail -1 | awk '{print $5}' | sed 's/%//')
|
||||
if [ $DISK_USAGE -gt 80 ]; then
|
||||
echo "[$DATE] ⚠️ 磁盘使用率过高: ${DISK_USAGE}%" >> $LOG_FILE
|
||||
fi
|
||||
|
||||
# 检查 PM2 状态
|
||||
PM2_STATUS=$(pm2 list | grep promptforge | awk '{print $10}' 2>/dev/null)
|
||||
if [ "$PM2_STATUS" != "online" ]; then
|
||||
echo "[$DATE] ⚠️ PM2 服务状态异常: $PM2_STATUS" >> $LOG_FILE
|
||||
fi
|
||||
|
||||
# 记录系统负载
|
||||
LOAD_AVG=$(uptime | awk -F'load average:' '{print $2}' | awk '{print $1}' | sed 's/,//')
|
||||
echo "[$DATE] 📊 系统负载: $LOAD_AVG, 内存使用: ${MEMORY_USAGE}%, 磁盘使用: ${DISK_USAGE}%" >> $LOG_FILE
|
||||
|
||||
# 保持日志文件大小合理(保留最近1000行)
|
||||
tail -n 1000 $LOG_FILE > $LOG_FILE.tmp && mv $LOG_FILE.tmp $LOG_FILE
|
||||
Reference in New Issue
Block a user