Files
membank/auto-check/docker/stress-test/scripts/run.sh
张威33321 a8fa159f0f chore: 同步本地更改
- 新增 aio-mcp 项目框架
- 新增 .trae/skills/ OCR/SKU 设计工具
- 更新 auto-check 配置和 stress 包
- 删除 fnhelp 文档目录
- 更新 Docker 压力测试脚本
2026-08-27 20:38:13 +08:00

75 lines
2.3 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# 压力测试入口脚本(打包在镜像内)
# auto-check 启动容器时通过环境变量传参,执行完整测试流程:
# 系统信息 → 温度监控启动 → 各项压测(先单项、后综合)→ 温度监控收尾 → 内核日志
set -e
# 统一 UTF-8 locale否则 sensors 输出 "+51.0 C"(无 ° 符号),
# 脚本中 (?=°C) 的温度正则会全部失配,导致温度采集不到
export LC_ALL=C.UTF-8
export LANG=C.UTF-8
# 默认值docker -e 传入时覆盖)
export AUTOCHECK_TYPES="${AUTOCHECK_TYPES:-cpu,memory}"
export AUTOCHECK_DURATION="${AUTOCHECK_DURATION:-30}"
export AUTOCHECK_THREADS="${AUTOCHECK_THREADS:-4}"
export AUTOCHECK_MEM_SIZE_MB="${AUTOCHECK_MEM_SIZE_MB:-0}"
export AUTOCHECK_DISK_SIZE_MB="${AUTOCHECK_DISK_SIZE_MB:-1024}"
export AUTOCHECK_TEMP_INTERVAL="${AUTOCHECK_TEMP_INTERVAL:-10}"
export AUTOCHECK_SAMPLE_INTERVAL="${AUTOCHECK_SAMPLE_INTERVAL:-2}"
if [ -n "$AUTOCHECK_DISK_DIR" ]; then export AUTOCHECK_DISK_DIR; fi
# 1. 系统信息
source /scripts/sysinfo.sh
# 2. 温度监控(后台周期采样)
source /scripts/temp_start.sh
# 未知类型输出 skip保证报告完整
for T in $(echo "$AUTOCHECK_TYPES" | tr ',' ' '); do
case "$T" in
cpu|memory|disk|memnative|full|fnstable) ;;
*)
echo "===TEST:$T==="
echo "status:skip"
echo "output:未知测试类型"
echo ""
;;
esac
done
# 3. 稳定性门禁fnscript 社区脚本先行,不通过则跳过自有压测)
# fnstable.sh 内部设置 GATE_PASSED1=通过 / 0=失败)
GATE_PASSED=1
REQ_TYPES=",${AUTOCHECK_TYPES// /},"
case "$REQ_TYPES" in
*,fnstable,*) source /scripts/fnstable.sh ;;
esac
# 4. 按固定顺序执行请求的自有测试(先单项、综合 full 最后)
# 门禁未通过 → 硬件已有问题,自有压测全部 skip报告仍完整输出
if [ "$GATE_PASSED" -eq 1 ]; then
for TYPE in cpu memory disk memnative full; do
case "$REQ_TYPES" in
*",$TYPE,"*) source "/scripts/$TYPE.sh" ;;
esac
done
else
for TYPE in cpu memory disk memnative full; do
case "$REQ_TYPES" in
*",$TYPE,"*)
echo "===TEST:$TYPE==="
echo "status:skip"
echo "output:fnscript 稳定性门禁未通过,跳过自有压测"
echo ""
;;
esac
done
fi
# 5. 温度监控收尾
source /scripts/temp_end.sh
# 6. 内核日志 + 结束标记
source /scripts/dmesg.sh