#!/bin/bash
# Omega 主机健康看门狗 - 每 2 小时跑一次, 只有异常才输出 (no_agent 模式: 空输出=静默)
# 检查: 内存紧张 / 磁盘满 / 媒体归档卡住
PROBLEMS=""

# 内存: 可用 < 300MB 告警
AVAIL=$(free -m | awk '/可用|available/{print $(NF-1); exit}')
if ! [[ "$AVAIL" =~ ^[0-9]+$ ]]; then AVAIL=$(free -m | awk 'NR==2{print $7}'); fi
if [ "$AVAIL" -lt 300 ]; then
  PROBLEMS="${PROBLEMS}⚠ 内存紧张: 可用仅 ${AVAIL}MB\n"
fi

# 磁盘: / 或 DataDisk 使用率 > 90%
for mp in / /mnt/DataDisk; do
  USE=$(df "$mp" | awk 'NR==2{print $5}' | tr -d '%')
  if [ "$USE" -gt 90 ]; then
    PROBLEMS="${PROBLEMS}⚠ 磁盘 ${mp} 使用率 ${USE}%\n"
  fi
done

# 媒体归档: media_watcher 是否存活
if ! pgrep -f media_watcher.py >/dev/null; then
  PROBLEMS="${PROBLEMS}⚠ media_watcher 未运行!\n"
fi

# 待处理目录堆积: 超过 20 个未处理项
PENDING=$(find /mnt/DataDisk/待处理 -maxdepth 1 -type d 2>/dev/null | wc -l)
if [ "$PENDING" -gt 21 ]; then
  PROBLEMS="${PROBLEMS}⚠ 待处理目录堆积: $((PENDING-1)) 项\n"
fi

if [ -n "$PROBLEMS" ]; then
  echo -e "Omega 健康检查 $(date '+%F %T'):\n${PROBLEMS}"
fi
