#!/bin/bash # Script per monitorare i log VPN in tempo reale # Salva come: storage/scripts/monitor-vpn-logs.sh # Uso: bash storage/scripts/monitor-vpn-logs.sh SCRIPT_DIR="$(dirname "$0")" LOG_FILE="$SCRIPT_DIR/../logs/vpn-connection.log" LARAVEL_LOG="/var/www/polizia/storage/logs/laravel.log" echo "=== VPN LOG MONITOR ===" echo "Data: $(date)" echo "Log file: $LOG_FILE" echo "Laravel log: $LARAVEL_LOG" echo "" echo "Premi Ctrl+C per fermare il monitoraggio" echo "===========================================" echo "" # Funzione per mostrare log colorati show_colored_log() { while IFS= read -r line; do if [[ $line == *"ERROR"* ]]; then echo -e "\033[31m$line\033[0m" # Rosso elif [[ $line == *"SUCCESS"* ]]; then echo -e "\033[32m$line\033[0m" # Verde elif [[ $line == *"INFO"* ]]; then echo -e "\033[34m$line\033[0m" # Blu elif [[ $line == *"WARNING"* ]]; then echo -e "\033[33m$line\033[0m" # Giallo else echo "$line" fi done } # Crea il file di log se non esiste if [[ ! -f "$LOG_FILE" ]]; then echo "$(date '+%Y-%m-%d %H:%M:%S') [INFO] Log monitoring started" >> "$LOG_FILE" fi # Mostra le ultime 20 righe esistenti if [[ -f "$LOG_FILE" ]]; then echo "=== ULTIMI LOG ESISTENTI ===" tail -20 "$LOG_FILE" | show_colored_log echo "" echo "=== MONITORING IN TEMPO REALE ===" fi # Monitora in tempo reale tail -f "$LOG_FILE" 2>/dev/null | show_colored_log & VPN_LOG_PID=$! # Se esiste anche il log Laravel, monitoralo per errori VPN if [[ -f "$LARAVEL_LOG" ]]; then tail -f "$LARAVEL_LOG" 2>/dev/null | grep -E "(VPN|vpn)" | while read line; do echo -e "\033[35m[LARAVEL] $line\033[0m" # Magenta done & LARAVEL_LOG_PID=$! fi # Gestisci l'interruzione 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 # Mantieni lo script in esecuzione wait