fix(systemd): versionar obs-index-sync.{sh,service,timer} no repo + remover --watch do indexer (decisão v2.7.2, incidente 110% CPU) — F0.5 Pipeline QT #2401
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
# obs-index-sync.sh — indexa sessões Claude/Hermes/OpenCode e sincroniza sessions.db para o volume EasyPanel.
|
||||
# CANÓNICO: este ficheiro vive NO REPO (systemd/obs-index-sync.sh) e é instalado por systemd/install-indexer.sh.
|
||||
# Lição 05-2026: a cópia única em ~/.local/bin perdeu-se e ninguém deu conta durante semanas (F0.5 Pipeline QT #2401).
|
||||
set -uo pipefail
|
||||
DASH_DIR="/media/ealmeida/Dados/Dev/DashDescomplicar"
|
||||
DB_LOCAL="$HOME/.claude-work/sessions.db"
|
||||
REMOTE_HOST="root@5.9.90.70"
|
||||
REMOTE_PATH="/root/data/dashboard-descomplicar/sessions.db"
|
||||
LOG="$HOME/.logs/observability/indexer.log"
|
||||
NODE="/home/ealmeida/.nvm/versions/node/v22.22.2/bin/node"
|
||||
NPX="/home/ealmeida/.nvm/versions/node/v22.22.2/bin/npx"
|
||||
mkdir -p "$(dirname "$LOG")"
|
||||
echo "[$(date -Iseconds)] Inicio" >> "$LOG"
|
||||
# Indexar
|
||||
cd "$DASH_DIR"
|
||||
OBSERVABILIDADE_DB="$DB_LOCAL" "$NPX" tsx api/scripts/sessions-indexer.ts --full >> "$LOG" 2>&1 || true
|
||||
# Checkpoint DB e forcar journal_mode=DELETE para evitar WAL inconsistente
|
||||
python3 -c "
|
||||
import sqlite3, os
|
||||
path = os.path.expanduser(\"$DB_LOCAL\")
|
||||
db = sqlite3.connect(path)
|
||||
db.execute(\"PRAGMA wal_checkpoint(TRUNCATE)\")
|
||||
db.execute(\"PRAGMA journal_mode=DELETE\")
|
||||
db.close()
|
||||
" 2>/dev/null || true
|
||||
# Sincronizar para EasyPanel
|
||||
rsync -az --checksum "$DB_LOCAL" "$REMOTE_HOST:$REMOTE_PATH" >> "$LOG" 2>&1
|
||||
# Limpar WAL/SHM no host EasyPanel e reiniciar servico Swarm
|
||||
ssh "$REMOTE_HOST" "rm -f /root/data/dashboard-descomplicar/sessions.db-shm /root/data/dashboard-descomplicar/sessions.db-wal && docker service update --detach=true --force descomplicar_dashboard_descomplicar 1>/dev/null 2>&1" >> "$LOG" 2>&1 || true
|
||||
echo "[$(date -Iseconds)] Concluido - $(du -sh "$DB_LOCAL" | cut -f1)" >> "$LOG"
|
||||
Reference in New Issue
Block a user