HEL-270: 验收物料——非root加固、备份/巡检脚本、运维手册、修复 reminders 布局冒烟测试
Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
Executable
+32
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env bash
|
||||
# 巡检:健康端点 + 磁盘水位告警。失败/越线写 ALERT.log(供总管日检)。
|
||||
# 建议 cron:*/5 * * * * /path/to/deploy/monitor.sh >/dev/null 2>&1
|
||||
set -euo pipefail
|
||||
ROOT="$(cd "$(dirname "$0")" && pwd)"
|
||||
URL="${HEALTH_URL:-http://127.0.0.1:4173/}"
|
||||
DATA_DIR="${DATA_DIR:-$ROOT/../data}"
|
||||
ALERT="$ROOT/ALERT.log"
|
||||
DISK_THRESHOLD="${DISK_THRESHOLD:-80}"
|
||||
|
||||
now() { date "+%Y-%m-%d %H:%M:%S"; }
|
||||
|
||||
# 1) 健康检查:HTTP 200 才算通过
|
||||
if ! curl -fsS -m 8 -o /dev/null "$URL"; then
|
||||
echo "[$(now)] HEALTH FAIL: $URL 无响应" >> "$ALERT"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 2) 磁盘水位:数据所在分区使用率超阈值告警
|
||||
pct="$(df -P "$DATA_DIR" | awk 'NR==2 {gsub("%",""); print $5}')"
|
||||
if [ "${pct:-0}" -ge "$DISK_THRESHOLD" ]; then
|
||||
echo "[$(now)] DISK ALERT: $DATA_DIR 使用率 ${pct}% >= ${DISK_THRESHOLD}%" >> "$ALERT"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
# 3) 容器状态:非 running/restarting 告警
|
||||
state="$(docker inspect -f '{{.State.Status}}' "${CONTAINER:-caiwuzongzhang-app}" 2>/dev/null || echo missing)"
|
||||
if [ "$state" != "running" ]; then
|
||||
echo "[$(now)] CONTAINER ALERT: ${CONTAINER:-caiwuzongzhang-app} state=$state" >> "$ALERT"
|
||||
exit 3
|
||||
fi
|
||||
echo "[$(now)] ok"
|
||||
Reference in New Issue
Block a user