status_prod.sh 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #!/bin/bash
  2. # 生产环境状态检查脚本
  3. # 用于检查记忆总结服务的运行状态
  4. set -e
  5. # 获取脚本所在目录
  6. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  7. cd "$SCRIPT_DIR"
  8. # 颜色输出
  9. GREEN='\033[0;32m'
  10. YELLOW='\033[1;33m'
  11. RED='\033[0;31m'
  12. BLUE='\033[0;34m'
  13. NC='\033[0m' # No Color
  14. PID_FILE="$SCRIPT_DIR/summarize_memory.pid"
  15. echo -e "${BLUE}📊 记忆总结服务状态检查${NC}"
  16. echo ""
  17. # 检查PID文件
  18. if [ -f "$PID_FILE" ]; then
  19. PID=$(cat "$PID_FILE")
  20. echo -e "PID文件: ${GREEN}$PID_FILE${NC}"
  21. echo -e "PID: ${GREEN}$PID${NC}"
  22. # 检查进程是否存在
  23. if ps -p "$PID" > /dev/null 2>&1; then
  24. echo -e "进程状态: ${GREEN}运行中${NC}"
  25. # 显示进程信息
  26. echo ""
  27. echo -e "${BLUE}进程信息:${NC}"
  28. ps -p "$PID" -o pid,ppid,cmd,etime,pcpu,pmem
  29. # 显示日志文件大小
  30. echo ""
  31. echo -e "${BLUE}日志文件:${NC}"
  32. if [ -f "logs/summarize_memory.log" ]; then
  33. LOG_SIZE=$(du -h "logs/summarize_memory.log" | cut -f1)
  34. echo -e " 正常日志: ${GREEN}logs/summarize_memory.log${NC} (${LOG_SIZE})"
  35. else
  36. echo -e " 正常日志: ${YELLOW}不存在${NC}"
  37. fi
  38. if [ -f "logs/summarize_memory_error.log" ]; then
  39. ERROR_LOG_SIZE=$(du -h "logs/summarize_memory_error.log" | cut -f1)
  40. ERROR_LINES=$(wc -l < "logs/summarize_memory_error.log" 2>/dev/null || echo "0")
  41. echo -e " 错误日志: ${GREEN}logs/summarize_memory_error.log${NC} (${ERROR_LOG_SIZE}, ${ERROR_LINES} 行)"
  42. else
  43. echo -e " 错误日志: ${GREEN}不存在(无错误)${NC}"
  44. fi
  45. if [ -f "summarize_memory_nohup.log" ]; then
  46. NOHUP_SIZE=$(du -h "summarize_memory_nohup.log" | cut -f1)
  47. echo -e " 后台日志: ${GREEN}summarize_memory_nohup.log${NC} (${NOHUP_SIZE})"
  48. fi
  49. else
  50. echo -e "进程状态: ${RED}未运行(PID文件存在但进程不存在)${NC}"
  51. echo -e "${YELLOW}提示: 可以删除 PID 文件: rm $PID_FILE${NC}"
  52. fi
  53. else
  54. echo -e "PID文件: ${YELLOW}不存在${NC}"
  55. # 尝试通过进程名查找
  56. PID=$(pgrep -f "summarize_memory.py" | head -n 1)
  57. if [ -n "$PID" ]; then
  58. echo -e "进程状态: ${GREEN}运行中(通过进程名找到,PID: $PID)${NC}"
  59. echo ""
  60. echo -e "${BLUE}进程信息:${NC}"
  61. ps -p "$PID" -o pid,ppid,cmd,etime,pcpu,pmem
  62. else
  63. echo -e "进程状态: ${RED}未运行${NC}"
  64. fi
  65. fi
  66. echo ""