#!/usr/bin/env bash # 清理 H5 图形验证码、短信验证码、限流与黑名单等 Redis 缓存 # 使用场景:验证码异常、发送过于频繁、需要重置限流时,在生产服务器执行 # # 用法(在生产服务器 192.168.71.56 上执行): # cd /opt/pangu-user-platform && bash scripts/clear-h5-captcha-cache.sh # REDIS_PASSWORD=你的密码 bash scripts/clear-h5-captcha-cache.sh # 若后端使用 application-test.yml,密码请以该文件为准。 set -e REDIS_HOST="${REDIS_HOST:-127.0.0.1}" REDIS_PORT="${REDIS_PORT:-6379}" REDIS_PASSWORD="${REDIS_PASSWORD:-}" if ! command -v redis-cli &>/dev/null; then echo "未找到 redis-cli,请安装 Redis 客户端或在已安装的机器上执行" exit 1 fi CLI=(redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT") if [[ -n "$REDIS_PASSWORD" ]]; then CLI+=(-a "$REDIS_PASSWORD") fi echo "清理 H5 验证码与短信相关缓存 (host=$REDIS_HOST port=$REDIS_PORT) ..." for pattern in "global:captcha_codes:*" "h5:sms:*"; do count=0 while IFS= read -r key; do [[ -z "$key" ]] && continue "${CLI[@]}" DEL "$key" &>/dev/null && ((count++)) || true done < <("${CLI[@]}" --no-auth-warning KEYS "$pattern" 2>/dev/null || true) echo " 已删除 pattern=$pattern 数量=$count" done echo "清理完成。"