monitor-vpn-logs.sh 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #!/bin/bash
  2. # Script per monitorare i log VPN in tempo reale
  3. # Salva come: storage/scripts/monitor-vpn-logs.sh
  4. # Uso: bash storage/scripts/monitor-vpn-logs.sh
  5. SCRIPT_DIR="$(dirname "$0")"
  6. LOG_FILE="$SCRIPT_DIR/../logs/vpn-connection.log"
  7. LARAVEL_LOG="/var/www/polizia/storage/logs/laravel.log"
  8. echo "=== VPN LOG MONITOR ==="
  9. echo "Data: $(date)"
  10. echo "Log file: $LOG_FILE"
  11. echo "Laravel log: $LARAVEL_LOG"
  12. echo ""
  13. echo "Premi Ctrl+C per fermare il monitoraggio"
  14. echo "==========================================="
  15. echo ""
  16. # Funzione per mostrare log colorati
  17. show_colored_log() {
  18. while IFS= read -r line; do
  19. if [[ $line == *"ERROR"* ]]; then
  20. echo -e "\033[31m$line\033[0m" # Rosso
  21. elif [[ $line == *"SUCCESS"* ]]; then
  22. echo -e "\033[32m$line\033[0m" # Verde
  23. elif [[ $line == *"INFO"* ]]; then
  24. echo -e "\033[34m$line\033[0m" # Blu
  25. elif [[ $line == *"WARNING"* ]]; then
  26. echo -e "\033[33m$line\033[0m" # Giallo
  27. else
  28. echo "$line"
  29. fi
  30. done
  31. }
  32. # Crea il file di log se non esiste
  33. if [[ ! -f "$LOG_FILE" ]]; then
  34. echo "$(date '+%Y-%m-%d %H:%M:%S') [INFO] Log monitoring started" >> "$LOG_FILE"
  35. fi
  36. # Mostra le ultime 20 righe esistenti
  37. if [[ -f "$LOG_FILE" ]]; then
  38. echo "=== ULTIMI LOG ESISTENTI ==="
  39. tail -20 "$LOG_FILE" | show_colored_log
  40. echo ""
  41. echo "=== MONITORING IN TEMPO REALE ==="
  42. fi
  43. # Monitora in tempo reale
  44. tail -f "$LOG_FILE" 2>/dev/null | show_colored_log &
  45. VPN_LOG_PID=$!
  46. # Se esiste anche il log Laravel, monitoralo per errori VPN
  47. if [[ -f "$LARAVEL_LOG" ]]; then
  48. tail -f "$LARAVEL_LOG" 2>/dev/null | grep -E "(VPN|vpn)" | while read line; do
  49. echo -e "\033[35m[LARAVEL] $line\033[0m" # Magenta
  50. done &
  51. LARAVEL_LOG_PID=$!
  52. fi
  53. # Gestisci l'interruzione
  54. trap 'echo ""; echo "Stopping log monitoring..."; kill $VPN_LOG_PID 2>/dev/null; [[ -n $LARAVEL_LOG_PID ]] && kill $LARAVEL_LOG_PID 2>/dev/null; exit 0' INT
  55. # Mantieni lo script in esecuzione
  56. wait