Monta /app/log sul disco video, sposta i cron log sullo stesso path, esclude log/ dal sync rsync e aggiunge pulizia volumi Docker obsoleti. Co-authored-by: Cursor <cursoragent@cursor.com>
36 lines
1020 B
Bash
36 lines
1020 B
Bash
#!/usr/bin/env bash
|
|
# Scansiona log Docker recenti e invia pattern sospetti a Rails ops:ingest_logs.
|
|
set -euo pipefail
|
|
|
|
ROOT="${MATCHLIVETV_INFRA:-/opt/matchlivetv/infra}"
|
|
SINCE="${OPS_LOG_SCAN_SINCE:-10m}"
|
|
ENV_FILE="${ROOT}/.env"
|
|
VIDEOS_ROOT="/media/videos/matchlivetv"
|
|
TMP="$(mktemp)"
|
|
trap 'rm -f "$TMP"' EXIT
|
|
|
|
if [ -f "$ENV_FILE" ]; then
|
|
line="$(grep -E '^MATCHLIVETV_VIDEOS_ROOT=' "$ENV_FILE" 2>/dev/null | tail -1 || true)"
|
|
if [ -n "$line" ]; then
|
|
VIDEOS_ROOT="${line#MATCHLIVETV_VIDEOS_ROOT=}"
|
|
VIDEOS_ROOT="${VIDEOS_ROOT%\"}"
|
|
VIDEOS_ROOT="${VIDEOS_ROOT#\"}"
|
|
fi
|
|
fi
|
|
|
|
LOG_DIR="${MATCHLIVETV_LOG_DIR:-${VIDEOS_ROOT}/log}"
|
|
|
|
cd "$ROOT"
|
|
|
|
docker compose -f docker-compose.prod.yml logs --since "$SINCE" rails sidekiq mediamtx 2>/dev/null > "$TMP" || true
|
|
|
|
if compgen -G "${LOG_DIR}/youtube_relay_*.log" > /dev/null 2>&1; then
|
|
cat "${LOG_DIR}"/youtube_relay_*.log >> "$TMP" 2>/dev/null || true
|
|
fi
|
|
|
|
if [[ ! -s "$TMP" ]]; then
|
|
exit 0
|
|
fi
|
|
|
|
"${ROOT}/scripts/cron/run_rails_task.sh" ops:ingest_logs["$TMP"]
|