ircu2/fix_extended_accounts_auto.sh

129 lines
4.6 KiB
Bash

#!/bin/bash
# Script automat de fix pentru problema EXTENDED_ACCOUNTS
# Găsește TOATE fișierele ircd.conf și le fixează
echo "╔═══════════════════════════════════════════════════╗"
echo "║ FIX AUTOMAT EXTENDED_ACCOUNTS TRUE → FALSE ║"
echo "╚═══════════════════════════════════════════════════╝"
echo ""
FIXED=0
FOUND=0
# Găsește toate fișierele ircd.conf
echo "[1/4] Căutare fișiere ircd.conf..."
CONFIGS=$(find /home -name "ircd.conf" 2>/dev/null)
if [ -z "$CONFIGS" ]; then
echo "❌ EROARE: Nu am găsit niciun fișier ircd.conf în /home"
echo ""
echo "Caută manual cu:"
echo " find / -name ircd.conf 2>/dev/null"
exit 1
fi
echo "✅ Găsite fișiere:"
echo "$CONFIGS"
echo ""
# Verifică și fixează fiecare fișier
echo "[2/4] Verificare și fix fișiere..."
for conf in $CONFIGS; do
FOUND=$((FOUND + 1))
echo ""
echo "=== Procesare: $conf ==="
# Verifică dacă există EXTENDED_ACCOUNTS = TRUE
if grep -q '"EXTENDED_ACCOUNTS" = "TRUE"' "$conf" 2>/dev/null; then
echo "⚠️ Găsit: EXTENDED_ACCOUNTS = TRUE"
# Backup
cp "$conf" "${conf}.backup.$(date +%Y%m%d_%H%M%S)"
echo "📦 Backup creat: ${conf}.backup.$(date +%Y%m%d_%H%M%S)"
# Fix
sed -i 's/"EXTENDED_ACCOUNTS" = "TRUE"/"EXTENDED_ACCOUNTS" = "FALSE"/' "$conf"
# Verifică fix
if grep -q '"EXTENDED_ACCOUNTS" = "FALSE"' "$conf" 2>/dev/null; then
echo "✅ FIXED: EXTENDED_ACCOUNTS = FALSE"
FIXED=$((FIXED + 1))
else
echo "❌ EROARE: Fix eșuat pentru $conf"
fi
elif grep -q '"EXTENDED_ACCOUNTS" = "FALSE"' "$conf" 2>/dev/null; then
echo "✅ OK: EXTENDED_ACCOUNTS = FALSE (deja corect)"
else
echo "⚠️ WARNING: EXTENDED_ACCOUNTS nu găsit în $conf"
echo " (Poate fi normal dacă e config vechi)"
fi
done
echo ""
echo "[3/4] Verificare proces ircd..."
IRCD_PID=$(pgrep -f "ircd.*ircd.conf" | head -1)
if [ -z "$IRCD_PID" ]; then
echo "⚠️ WARNING: Nu rulează niciun proces ircd"
echo " Pornește manual cu:"
echo " /home/anope/ircd/bin/ircd -f /home/anope/ircd/lib/ircd.conf"
else
echo "✅ Proces ircd găsit: PID $IRCD_PID"
IRCD_CMD=$(ps -p $IRCD_PID -o args= 2>/dev/null)
echo " Comandă: $IRCD_CMD"
# Extrage calea config din comandă
CONFIG_USED=$(echo "$IRCD_CMD" | grep -oP '(?<=-f )[^ ]+' | head -1)
if [ -n "$CONFIG_USED" ]; then
echo " Config folosit: $CONFIG_USED"
# Verifică dacă config-ul folosit e unul din cele fixate
if echo "$CONFIGS" | grep -q "$CONFIG_USED"; then
echo " ✅ Config-ul folosit e în lista celor fixate"
else
echo " ⚠️ WARNING: Config-ul folosit NU e în lista celor fixate!"
echo " Verifică manual: $CONFIG_USED"
fi
fi
fi
echo ""
echo "[4/4] Rezumat și acțiuni următoare..."
echo ""
echo "═══════════════════════════════════════════════════"
echo "REZUMAT:"
echo " Fișiere găsite: $FOUND"
echo " Fișiere fixate: $FIXED"
echo "═══════════════════════════════════════════════════"
echo ""
if [ $FIXED -gt 0 ]; then
echo "✅ FIX APLICAT! Acum RESTART IRCd:"
echo ""
echo " killall ircd"
echo " sleep 3"
echo " /home/anope/ircd/bin/ircd -f /home/anope/ircd/lib/ircd.conf"
echo ""
echo "Sau copiază și rulează:"
echo ""
echo "killall ircd && sleep 3 && /home/anope/ircd/bin/ircd -f /home/anope/ircd/lib/ircd.conf"
echo ""
else
echo "⚠️ Niciun fișier nu a fost modificat."
echo ""
echo "Posibile cauze:"
echo " 1. EXTENDED_ACCOUNTS e deja FALSE (deja corect)"
echo " 2. Lipsește din config (adaugă manual)"
echo " 3. Config e în alt loc (verifică cu: find / -name ircd.conf)"
echo ""
fi
echo "═══════════════════════════════════════════════════"
echo "Pentru verificare finală după restart:"
echo " /stats f | grep EXTENDED"
echo ""
echo "Ar trebui să apară:"
echo " F EXTENDED_ACCOUNTS FALSE"
echo "═══════════════════════════════════════════════════"