33800 Docs

← Retour
#!/bin/bash # Sync des logs centralises /logs/devia vers O2switch (archivage cold storage) # 2026-07-12 : re-pointe de Loki (192.168.1.12, mort — 0 export depuis juillet) vers /logs/devia # (depot quotidien du relais logs : docker coeur + exports db, pousse ~08h30 depuis VM201) # Cron: 0 3 * * * gouroubleu (inchange) — ancien script Loki : sync-logs-o2switch.sh.bak-loki set -e SRC="/logs/devia" O2SWITCH="o2switch" REMOTE_DIR="backup/logs/devia" LOG_FILE="/var/log/sync-logs-o2switch.log" log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE" } log "=== Debut sync $SRC vers O2switch ===" # Garde-fou : si le dataset zfs n'est pas monte, ne rien faire et le dire if [ ! -d "$SRC/docker" ] && [ ! -d "$SRC/db" ]; then log "!! Source $SRC vide ou non montee (dataset nvme-solo/logs/devia ?) — abandon" exit 1 fi ssh -o ConnectTimeout=10 "$O2SWITCH" "mkdir -p ~/$REMOTE_DIR" 2>/dev/null || true # Pas de --delete : o2switch garde l'historique meme si le local est purge un jour STATS=$(rsync -az --stats "$SRC/" "$O2SWITCH:~/$REMOTE_DIR/" 2>&1 | grep -E "Number of created files|Number of regular files transferred|Total transferred file size" | tr '\n' ' ') log "rsync OK: $STATS" # Retention 90 jours sur O2switch log "Nettoyage logs > 90 jours sur O2switch..." ssh -o ConnectTimeout=10 "$O2SWITCH" "find ~/$REMOTE_DIR -type f -mtime +90 -delete 2>/dev/null" || true log "=== Fin sync logs ===" # Meta pour logs.internal : manifest local + log de sync pousses sur o2switch META_DIR="/tmp/logs-meta-$$" mkdir -p "$META_DIR" ( cd "$SRC" && find . -type f -printf "%P\t%s\t%TY-%Tm-%TdT%TH:%TM:%TS\n" | sort ) > "$META_DIR/manifest-local.tsv" df -B1 --output=size,used,avail "$SRC" | tail -1 | awk "{print \"size_bytes=\"\$1\"\nused_bytes=\"\$2\"\navail_bytes=\"\$3}" > "$META_DIR/depot-local.txt" date "+last_sync=%Y-%m-%dT%H:%M:%S" >> "$META_DIR/depot-local.txt" cp "$LOG_FILE" "$META_DIR/sync.log" 2>/dev/null || true ssh -o ConnectTimeout=10 "$O2SWITCH" "mkdir -p ~/$REMOTE_DIR/_meta" 2>/dev/null || true rsync -az "$META_DIR/" "$O2SWITCH:~/$REMOTE_DIR/_meta/" && log "meta OK (manifest+sync.log)" rm -rf "$META_DIR"