status_prod.sh 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #!/bin/bash
  2. # 生产环境服务状态查看脚本
  3. # 用于查看验证码发送服务的运行状态
  4. # 获取脚本所在目录
  5. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  6. # 颜色输出
  7. GREEN='\033[0;32m'
  8. YELLOW='\033[1;33m'
  9. RED='\033[0;31m'
  10. BLUE='\033[0;34m'
  11. NC='\033[0m' # No Color
  12. echo -e "${BLUE}📊 验证码发送服务状态${NC}"
  13. echo "=================================="
  14. echo ""
  15. # 检查邮件服务
  16. check_email_service() {
  17. PID_FILE="$SCRIPT_DIR/send_email.pid"
  18. if [ -f "$PID_FILE" ]; then
  19. PID=$(cat "$PID_FILE")
  20. if ps -p "$PID" > /dev/null 2>&1; then
  21. echo -e "${GREEN}✅ 邮件服务运行中${NC}"
  22. echo " PID: $PID"
  23. ps -p "$PID" -o pid,etime,cmd --no-headers | awk '{print " 运行时间: " $2}'
  24. else
  25. echo -e "${RED}❌ 邮件服务未运行 (PID 文件存在但进程不存在)${NC}"
  26. fi
  27. else
  28. # 尝试通过进程名查找
  29. PIDS=$(pgrep -f "send_email.py" || true)
  30. if [ -n "$PIDS" ]; then
  31. echo -e "${YELLOW}⚠️ 邮件服务运行中 (但未找到 PID 文件)${NC}"
  32. echo " PIDs: $PIDS"
  33. else
  34. echo -e "${RED}❌ 邮件服务未运行${NC}"
  35. fi
  36. fi
  37. # 显示日志文件信息
  38. if [ -f "$SCRIPT_DIR/send_email.log" ]; then
  39. LOG_SIZE=$(ls -lh "$SCRIPT_DIR/send_email.log" | awk '{print $5}')
  40. LOG_TIME=$(stat -f "%Sm" -t "%Y-%m-%d %H:%M:%S" "$SCRIPT_DIR/send_email.log" 2>/dev/null || stat -c "%y" "$SCRIPT_DIR/send_email.log" 2>/dev/null | cut -d. -f1)
  41. echo " 日志文件: send_email.log ($LOG_SIZE, 最后更新: $LOG_TIME)"
  42. fi
  43. echo ""
  44. }
  45. # 检查短信服务
  46. check_sms_service() {
  47. PID_FILE="$SCRIPT_DIR/send_sms_gn.pid"
  48. if [ -f "$PID_FILE" ]; then
  49. PID=$(cat "$PID_FILE")
  50. if ps -p "$PID" > /dev/null 2>&1; then
  51. echo -e "${GREEN}✅ 短信服务运行中${NC}"
  52. echo " PID: $PID"
  53. ps -p "$PID" -o pid,etime,cmd --no-headers | awk '{print " 运行时间: " $2}'
  54. else
  55. echo -e "${RED}❌ 短信服务未运行 (PID 文件存在但进程不存在)${NC}"
  56. fi
  57. else
  58. # 尝试通过进程名查找
  59. PIDS=$(pgrep -f "send_sms_gn.py" || true)
  60. if [ -n "$PIDS" ]; then
  61. echo -e "${YELLOW}⚠️ 短信服务运行中 (但未找到 PID 文件)${NC}"
  62. echo " PIDs: $PIDS"
  63. else
  64. echo -e "${RED}❌ 短信服务未运行${NC}"
  65. fi
  66. fi
  67. # 显示日志文件信息
  68. if [ -f "$SCRIPT_DIR/send_sms_gn.log" ]; then
  69. LOG_SIZE=$(ls -lh "$SCRIPT_DIR/send_sms_gn.log" | awk '{print $5}')
  70. LOG_TIME=$(stat -f "%Sm" -t "%Y-%m-%d %H:%M:%S" "$SCRIPT_DIR/send_sms_gn.log" 2>/dev/null || stat -c "%y" "$SCRIPT_DIR/send_sms_gn.log" 2>/dev/null | cut -d. -f1)
  71. echo " 日志文件: send_sms_gn.log ($LOG_SIZE, 最后更新: $LOG_TIME)"
  72. fi
  73. echo ""
  74. }
  75. check_email_service
  76. check_sms_service
  77. echo "=================================="
  78. echo -e "${BLUE}💡 提示:${NC}"
  79. echo " 启动服务: ./start_prod.sh [email|sms|all]"
  80. echo " 停止服务: ./stop_prod.sh [email|sms|all]"
  81. echo " 查看日志: tail -f send_email.log 或 tail -f send_sms_gn.log"