refactor(discovery): use ping for discovery and fill MAC via SSH
This commit is contained in:
37
auto-check/scripts/cpu.sh
Normal file
37
auto-check/scripts/cpu.sh
Normal file
@@ -0,0 +1,37 @@
|
||||
echo "===TEST:cpu==="
|
||||
|
||||
# 后台采样 CPU 使用率 + 温度
|
||||
SAMPLE_LOG=/tmp/auto-check-cpu-sample.log
|
||||
> "$SAMPLE_LOG"
|
||||
(
|
||||
while true; do
|
||||
TS=$(date +%H:%M:%S)
|
||||
CPU=$(top -bn1 2>/dev/null | grep "Cpu(s)" | sed 's/.*,\s*\([0-9.]*\)%*\s*id.*/\1/' | awk '{printf "%.1f", 100-$1}' || echo 0)
|
||||
TEMP=$(sensors 2>/dev/null | grep -iE 'Package|Core\s*0|temp1|CPU' | head -1 | grep -oP '\d+\.?\d*' | head -1 || echo 0)
|
||||
echo "${TS},${CPU},${TEMP}" >> "$SAMPLE_LOG"
|
||||
sleep "${AUTOCHECK_SAMPLE_INTERVAL:-2}"
|
||||
done
|
||||
) &
|
||||
SAMPLE_PID=$!
|
||||
|
||||
START_TIME=$(date +%s%N)
|
||||
set +e
|
||||
OUTPUT=$(stress-ng --cpu "${AUTOCHECK_THREADS:-4}" --cpu-method all --timeout "${AUTOCHECK_DURATION:-30}s" --metrics-brief --temp-path /tmp 2>&1)
|
||||
EXIT_CODE=$?
|
||||
set -e
|
||||
END_TIME=$(date +%s%N)
|
||||
|
||||
kill $SAMPLE_PID 2>/dev/null || true
|
||||
wait $SAMPLE_PID 2>/dev/null || true
|
||||
|
||||
DURATION_MS=$(( (END_TIME - START_TIME) / 1000000 ))
|
||||
if [ "$EXIT_CODE" -eq 0 ]; then echo 'status:pass'; else echo 'status:fail'; fi
|
||||
echo "duration:${DURATION_MS}ms"
|
||||
echo "output:${OUTPUT}"
|
||||
|
||||
# 输出采样数据
|
||||
echo "===SAMPLES==="
|
||||
cat "$SAMPLE_LOG"
|
||||
echo "===END_SAMPLES==="
|
||||
|
||||
echo ''
|
||||
14
auto-check/scripts/disk.sh
Normal file
14
auto-check/scripts/disk.sh
Normal file
@@ -0,0 +1,14 @@
|
||||
echo "===TEST:disk==="
|
||||
TEST_DIR=${AUTOCHECK_DISK_DIR:-/tmp/stress-disk-test}
|
||||
DISK_SIZE_MB=${AUTOCHECK_DISK_SIZE_MB:-1024}
|
||||
START_TIME=$(date +%s%N)
|
||||
set +e
|
||||
OUTPUT=$(mkdir -p "${TEST_DIR}" && stress-ng --iomix 2 --iomix-bytes "${DISK_SIZE_MB}M" --timeout "${AUTOCHECK_DURATION:-30}s" --metrics-brief 2>&1; rm -rf "${TEST_DIR}")
|
||||
EXIT_CODE=$?
|
||||
set -e
|
||||
END_TIME=$(date +%s%N)
|
||||
DURATION_MS=$(( (END_TIME - START_TIME) / 1000000 ))
|
||||
if [ "$EXIT_CODE" -eq 0 ]; then echo 'status:pass'; else echo 'status:fail'; fi
|
||||
echo "duration:${DURATION_MS}ms"
|
||||
echo "output:${OUTPUT}"
|
||||
echo ''
|
||||
11
auto-check/scripts/dmesg.sh
Normal file
11
auto-check/scripts/dmesg.sh
Normal file
@@ -0,0 +1,11 @@
|
||||
echo '===MONITOR:dmesg==='
|
||||
DMESG_ERR=$(dmesg --level=err,crit,alert,emerg 2>/dev/null | tail -30 || true)
|
||||
if [ -n "$DMESG_ERR" ]; then
|
||||
echo 'status:fail'
|
||||
echo "output:${DMESG_ERR}"
|
||||
else
|
||||
echo 'status:pass'
|
||||
echo 'output:无硬件相关内核报错'
|
||||
fi
|
||||
echo ''
|
||||
echo '===END==='
|
||||
12
auto-check/scripts/full.sh
Normal file
12
auto-check/scripts/full.sh
Normal file
@@ -0,0 +1,12 @@
|
||||
echo "===TEST:full==="
|
||||
START_TIME=$(date +%s%N)
|
||||
set +e
|
||||
OUTPUT=$(stress-ng --cpu "${AUTOCHECK_THREADS:-4}" --vm 2 --vm-bytes 128M --iomix 1 --iomix-bytes 256M --timeout "${AUTOCHECK_DURATION:-30}s" --metrics-brief 2>&1)
|
||||
EXIT_CODE=$?
|
||||
set -e
|
||||
END_TIME=$(date +%s%N)
|
||||
DURATION_MS=$(( (END_TIME - START_TIME) / 1000000 ))
|
||||
if [ "$EXIT_CODE" -eq 0 ]; then echo 'status:pass'; else echo 'status:fail'; fi
|
||||
echo "duration:${DURATION_MS}ms"
|
||||
echo "output:${OUTPUT}"
|
||||
echo ''
|
||||
19
auto-check/scripts/memnative.sh
Normal file
19
auto-check/scripts/memnative.sh
Normal file
@@ -0,0 +1,19 @@
|
||||
echo "===TEST:memnative==="
|
||||
MEM_SIZE_MB=${AUTOCHECK_MEM_SIZE_MB:-0}
|
||||
if [ "$MEM_SIZE_MB" -gt 0 ]; then
|
||||
MEM_ARG="-M ${MEM_SIZE_MB}"
|
||||
else
|
||||
M=$(free -m 2>/dev/null | awk '/Mem:/{print int($7*0.6)}' || echo 512)
|
||||
MEM_ARG="-M ${M}"
|
||||
fi
|
||||
START_TIME=$(date +%s%N)
|
||||
set +e
|
||||
OUTPUT=$(stressapptest -s "${AUTOCHECK_DURATION:-30}" ${MEM_ARG} -f 0 -v 2>&1)
|
||||
EXIT_CODE=$?
|
||||
set -e
|
||||
END_TIME=$(date +%s%N)
|
||||
DURATION_MS=$(( (END_TIME - START_TIME) / 1000000 ))
|
||||
if [ "$EXIT_CODE" -eq 0 ]; then echo 'status:pass'; else echo 'status:fail'; fi
|
||||
echo "duration:${DURATION_MS}ms"
|
||||
echo "output:${OUTPUT}"
|
||||
echo ''
|
||||
14
auto-check/scripts/memory.sh
Normal file
14
auto-check/scripts/memory.sh
Normal file
@@ -0,0 +1,14 @@
|
||||
echo "===TEST:memory==="
|
||||
VM_WORKERS=${AUTOCHECK_THREADS:-4}
|
||||
if [ "$VM_WORKERS" -gt 4 ]; then VM_WORKERS=4; fi
|
||||
START_TIME=$(date +%s%N)
|
||||
set +e
|
||||
OUTPUT=$(stress-ng --vm "${VM_WORKERS}" --vm-bytes 256M --vm-method all --timeout "${AUTOCHECK_DURATION:-30}s" --metrics-brief 2>&1)
|
||||
EXIT_CODE=$?
|
||||
set -e
|
||||
END_TIME=$(date +%s%N)
|
||||
DURATION_MS=$(( (END_TIME - START_TIME) / 1000000 ))
|
||||
if [ "$EXIT_CODE" -eq 0 ]; then echo 'status:pass'; else echo 'status:fail'; fi
|
||||
echo "duration:${DURATION_MS}ms"
|
||||
echo "output:${OUTPUT}"
|
||||
echo ''
|
||||
8
auto-check/scripts/sysinfo.sh
Normal file
8
auto-check/scripts/sysinfo.sh
Normal file
@@ -0,0 +1,8 @@
|
||||
echo '===SYSTEM_INFO==='
|
||||
echo "hostname:$(hostname)"
|
||||
echo "cpu:$(lscpu 2>/dev/null | grep 'Model name' | sed 's/Model name:\s*//' || echo unknown)"
|
||||
echo "cores:$(nproc 2>/dev/null || echo 0)"
|
||||
echo "memory:$(free -h 2>/dev/null | awk '/Mem:/{print $2}' || echo unknown)"
|
||||
echo "kernel:$(uname -r 2>/dev/null || echo unknown)"
|
||||
echo "disk:$(lsblk -d -o NAME,SIZE 2>/dev/null | head -3 | tr '\n' ' ')"
|
||||
echo ''
|
||||
12
auto-check/scripts/temp_end.sh
Normal file
12
auto-check/scripts/temp_end.sh
Normal file
@@ -0,0 +1,12 @@
|
||||
echo '===MONITOR:temp==='
|
||||
if [ -f "$TEMP_LOG" ] && [ -s "$TEMP_LOG" ]; then
|
||||
echo 'status:pass'
|
||||
TEMP_MAX=$(grep -oP '\d+\.?\d*°C' "$TEMP_LOG" | sort -t. -k1 -n | tail -1 || echo 'unknown')
|
||||
echo "samples:$(wc -l < "$TEMP_LOG")"
|
||||
echo "max:${TEMP_MAX}"
|
||||
echo "output:$(tail -10 "$TEMP_LOG")"
|
||||
else
|
||||
echo 'status:skip'
|
||||
fi
|
||||
echo ''
|
||||
kill $TEMP_PID 2>/dev/null || true
|
||||
4
auto-check/scripts/temp_start.sh
Normal file
4
auto-check/scripts/temp_start.sh
Normal file
@@ -0,0 +1,4 @@
|
||||
TEMP_LOG=/tmp/auto-check-temp.log
|
||||
> "$TEMP_LOG"
|
||||
(while true; do sensors 2>/dev/null | grep -i 'temp\|core\|cpu' | head -5 >> "$TEMP_LOG"; sleep "${AUTOCHECK_TEMP_INTERVAL:-10}"; done) &
|
||||
TEMP_PID=$!
|
||||
Reference in New Issue
Block a user