提交 bb2efe4a authored 作者: 陈泽健's avatar 陈泽健

docs(prd): 更新中间件检测优化需求文档,输出emqx、redis、mysql的检测代码

- 升级版本号从V1.4到V1.8
- 补充MySQL检测完整功能描述包括性能指标和安全状态检查
- 新增Redis和MySQL脚本部署要求说明区分PowerShell自动上传和Shell手动部署
- 扩展FastDFS检测功能描述添加文件下载和完整性验证功能
- 更新MySQL检测验收标准增加容器检测和性能指标收集要求
- 补充check_mysql.sh和check_fdfs.sh脚本详细说明和执行示例
- 优化部署要求说明明确自动上传和手动部署两种方式的区别
- 添加FastDFS检测功能映射表和完整的实施步骤描述
上级 518940f6
#!/bin/bash
# final_verify.sh - FastDFS最终验证脚本(非交互式)
set -e
# 颜色定义
GREEN='\033[0;32m'
RED='\033[0;31m'
NC='\033[0m'
STORAGE_CONTAINER="ustorage"
TRACKER_CONTAINER="utracker"
CLIENT_CONF="/etc/fdfs/client.conf"
echo "=========================================="
echo " FastDFS 最终功能验证"
echo "=========================================="
echo ""
# 1. 创建测试文件
TEST_FILE="/tmp/fastdfs_final_test_$(date +%s).txt"
echo "FastDFS Final Verification Test - $(date)" > "$TEST_FILE"
ORIGINAL_MD5=$(md5sum "$TEST_FILE" | awk '{print $1}')
echo "1. 创建测试文件: $TEST_FILE (MD5: $ORIGINAL_MD5)"
# 2. 复制到容器
if docker cp "$TEST_FILE" "$STORAGE_CONTAINER:/tmp/" 2>/dev/null; then
echo "2. ✓ 测试文件已复制到容器"
else
echo "2. ✗ 无法复制文件到容器"
exit 1
fi
CONTAINER_TEST_FILE="/tmp/$(basename "$TEST_FILE")"
# 3. 上传测试
echo "3. 执行上传测试..."
UPLOAD_RESULT=$(docker exec "$STORAGE_CONTAINER" fdfs_upload_file "$CLIENT_CONF" "$CONTAINER_TEST_FILE" 2>&1)
if [[ $? -eq 0 ]] && [[ -n "$UPLOAD_RESULT" ]] && [[ "$UPLOAD_RESULT" == group* ]]; then
echo " ✓ 上传成功"
echo " 文件ID: $UPLOAD_RESULT"
# 4. 下载测试
echo "4. 执行下载测试..."
DOWNLOAD_RESULT=$(docker exec "$STORAGE_CONTAINER" fdfs_download_file "$CLIENT_CONF" "$UPLOAD_RESULT" "/tmp/downloaded_final.txt" 2>&1)
if [[ $? -eq 0 ]]; then
echo " ✓ 下载成功"
# 5. 完整性验证
DOWNLOADED_MD5=$(docker exec "$STORAGE_CONTAINER" md5sum "/tmp/downloaded_final.txt" 2>/dev/null | awk '{print $1}' || echo "")
if [[ "$ORIGINAL_MD5" == "$DOWNLOADED_MD5" ]]; then
echo " ✓ 文件完整性验证通过"
echo -e "\n${GREEN}==========================================${NC}"
echo -e "${GREEN}✅ FastDFS 所有核心功能验证通过!${NC}"
echo -e "${GREEN}==========================================${NC}"
echo ""
echo "功能验证清单:"
echo " ✓ 文件上传"
echo " ✓ 文件下载"
echo " ✓ 文件完整性"
echo " ✓ Tracker服务"
echo " ✓ Storage服务"
echo " ✓ 网络通信"
# 6. 测试HTTP访问(可选)
echo ""
echo "6. 可选HTTP访问测试:"
# 获取访问URL
FILE_PATH=$(echo "$UPLOAD_RESULT" | sed 's|group1|/group1|')
echo " 访问URL: http://服务器IP:8888$FILE_PATH"
else
echo " ✗ 文件完整性验证失败"
echo " 原始MD5: $ORIGINAL_MD5"
echo " 下载MD5: $DOWNLOADED_MD5"
fi
else
echo " ✗ 下载失败: $DOWNLOAD_RESULT"
fi
# 清理容器文件
docker exec "$STORAGE_CONTAINER" rm -f "$CONTAINER_TEST_FILE" "/tmp/downloaded_final.txt" 2>/dev/null || true
else
echo " ✗ 上传失败: $UPLOAD_RESULT"
fi
# 清理本地文件
rm -f "$TEST_FILE" 2>/dev/null || true
echo ""
echo "=========================================="
echo " 验证完成"
echo "=========================================="
......@@ -8,12 +8,23 @@
# 配置参数
REDIS_HOST="${REDIS_HOST:-localhost}"
REDIS_PORT="${REDIS_PORT:-6379}"
REDIS_PASS="${REDIS_PASSWORD:-dNrprU&2S}" # 从环境变量获取,或留空
# 密码使用环境变量或默认值(注意:脚本内部硬编码,避免特殊字符问题)
if [ -z "$REDIS_PASSWORD" ]; then
REDIS_PASS='dNrprU&2S'
else
REDIS_PASS="$REDIS_PASSWORD"
fi
CONTAINER_PATTERN="${CONTAINER_PATTERN:-uredis}" # 容器名称模式
AUTO_DETECT="${AUTO_DETECT:-true}" # 是否自动检测容器
TEST_KEY_PREFIX="_health_check_$$_$(date +%Y%m%d_%H%M%S)" # 唯一测试键前缀
USE_CONTAINER_CMD=false # 默认使用直接连接
# 支持命令行参数传递容器名(兼容性)
if [ -n "$1" ] && [ -z "$REDIS_CONTAINER" ]; then
REDIS_CONTAINER="$1"
AUTO_DETECT="false"
fi
# 颜色输出定义
RED='\033[0;31m'
GREEN='\033[0;32m'
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论