| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- #!/bin/bash
- # 生产环境服务状态查看脚本
- # 用于查看验证码发送服务的运行状态
- # 获取脚本所在目录
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
- # 颜色输出
- GREEN='\033[0;32m'
- YELLOW='\033[1;33m'
- RED='\033[0;31m'
- BLUE='\033[0;34m'
- NC='\033[0m' # No Color
- echo -e "${BLUE}📊 验证码发送服务状态${NC}"
- echo "=================================="
- echo ""
- # 检查邮件服务
- check_email_service() {
- PID_FILE="$SCRIPT_DIR/send_email.pid"
- if [ -f "$PID_FILE" ]; then
- PID=$(cat "$PID_FILE")
- if ps -p "$PID" > /dev/null 2>&1; then
- echo -e "${GREEN}✅ 邮件服务运行中${NC}"
- echo " PID: $PID"
- ps -p "$PID" -o pid,etime,cmd --no-headers | awk '{print " 运行时间: " $2}'
- else
- echo -e "${RED}❌ 邮件服务未运行 (PID 文件存在但进程不存在)${NC}"
- fi
- else
- # 尝试通过进程名查找
- PIDS=$(pgrep -f "send_email.py" || true)
- if [ -n "$PIDS" ]; then
- echo -e "${YELLOW}⚠️ 邮件服务运行中 (但未找到 PID 文件)${NC}"
- echo " PIDs: $PIDS"
- else
- echo -e "${RED}❌ 邮件服务未运行${NC}"
- fi
- fi
-
- # 显示日志文件信息
- if [ -f "$SCRIPT_DIR/send_email.log" ]; then
- LOG_SIZE=$(ls -lh "$SCRIPT_DIR/send_email.log" | awk '{print $5}')
- 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)
- echo " 日志文件: send_email.log ($LOG_SIZE, 最后更新: $LOG_TIME)"
- fi
- echo ""
- }
- # 检查短信服务
- check_sms_service() {
- PID_FILE="$SCRIPT_DIR/send_sms_gn.pid"
- if [ -f "$PID_FILE" ]; then
- PID=$(cat "$PID_FILE")
- if ps -p "$PID" > /dev/null 2>&1; then
- echo -e "${GREEN}✅ 短信服务运行中${NC}"
- echo " PID: $PID"
- ps -p "$PID" -o pid,etime,cmd --no-headers | awk '{print " 运行时间: " $2}'
- else
- echo -e "${RED}❌ 短信服务未运行 (PID 文件存在但进程不存在)${NC}"
- fi
- else
- # 尝试通过进程名查找
- PIDS=$(pgrep -f "send_sms_gn.py" || true)
- if [ -n "$PIDS" ]; then
- echo -e "${YELLOW}⚠️ 短信服务运行中 (但未找到 PID 文件)${NC}"
- echo " PIDs: $PIDS"
- else
- echo -e "${RED}❌ 短信服务未运行${NC}"
- fi
- fi
-
- # 显示日志文件信息
- if [ -f "$SCRIPT_DIR/send_sms_gn.log" ]; then
- LOG_SIZE=$(ls -lh "$SCRIPT_DIR/send_sms_gn.log" | awk '{print $5}')
- 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)
- echo " 日志文件: send_sms_gn.log ($LOG_SIZE, 最后更新: $LOG_TIME)"
- fi
- echo ""
- }
- check_email_service
- check_sms_service
- echo "=================================="
- echo -e "${BLUE}💡 提示:${NC}"
- echo " 启动服务: ./start_prod.sh [email|sms|all]"
- echo " 停止服务: ./stop_prod.sh [email|sms|all]"
- echo " 查看日志: tail -f send_email.log 或 tail -f send_sms_gn.log"
|