Files
qipai/scripts/dev/wsl/check-local-mqtt.sh
T
2026-06-16 12:23:00 +08:00

54 lines
1.4 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
required_ports=(1883 8883 8083 8084 18083)
echo "INFO: checking WSL local MQTT baseline"
if dpkg-query -W emqx >/dev/null 2>&1; then
emqx_version="$(dpkg-query -W -f='${Version}' emqx)"
if [ "$emqx_version" = "5.8.9" ]; then
echo "PASS: emqx package version ${emqx_version}"
else
echo "WARN: emqx package version ${emqx_version}, expected 5.8.9"
fi
else
echo "FAIL: emqx package not found"
exit 1
fi
systemctl is-active --quiet emqx && echo "PASS: emqx service active" || {
echo "FAIL: emqx service is not active"
exit 1
}
systemctl is-enabled --quiet emqx && echo "PASS: emqx service enabled" || {
echo "FAIL: emqx service is not enabled"
exit 1
}
if [ "$(command -v mqttx 2>/dev/null)" = "/usr/local/bin/mqttx" ]; then
echo "PASS: mqttx path /usr/local/bin/mqttx"
else
echo "FAIL: mqttx path mismatch"
exit 1
fi
mqttx_version="$(mqttx --version 2>/dev/null | head -1)"
if [ "$mqttx_version" = "1.13.0" ]; then
echo "PASS: mqttx version ${mqttx_version}"
else
echo "WARN: mqttx version ${mqttx_version}, expected 1.13.0"
fi
for port in "${required_ports[@]}"; do
if ss -ltn "sport = :${port}" 2>/dev/null | grep -q ":${port}"; then
echo "PASS: port ${port} listening"
else
echo "FAIL: port ${port} not listening"
exit 1
fi
done
echo "INFO: service-level check only; auth, ACL, TLS, will-message and idempotency tests are not covered here."