129 lines
4.6 KiB
Bash
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 "═══════════════════════════════════════════════════"
|
|
|