# 🕐 CONFIGURAZIONE CRONTAB SISTEMA DDoS DETECTION ## 🚀 INSTALLAZIONE RAPIDA ```bash # 1. Rendi eseguibile lo script di setup chmod +x setup_crontab.sh # 2. Esegui la configurazione automatica ./setup_crontab.sh ``` ## 📋 CONFIGURAZIONE CRONTAB MANUALE Se preferisci configurare manualmente il crontab, usa questi comandi: ### 1. Modifica il crontab ```bash crontab -e ``` ### 2. Aggiungi queste righe: ```bash # ============================================ # SISTEMA DDoS DETECTION - CONFIGURAZIONE AUTOMATICA # ============================================ # Training ogni 12 ore (alle 00:00 e 12:00) 0 */12 * * * cd /percorso/completo/del/progetto && python3 analisys_02.py --training-hours 0.01 --max-records 500000 --force-training >> /root/training.log 2>&1 # Verifica processo detect ogni 5 minuti (riavvia se non attivo) */5 * * * * /percorso/completo/del/progetto/check_detect.sh >> /root/cron_ddos.log 2>&1 # Pulizia log settimanale (ogni domenica alle 02:00) 0 2 * * 0 find /root -name "*.log" -size +100M -exec truncate -s 50M {} \; >> /root/cron_ddos.log 2>&1 # Restart completo del sistema ogni settimana (domenica alle 03:00) 0 3 * * 0 /percorso/completo/del/progetto/restart_detect.sh >> /root/cron_ddos.log 2>&1 ``` ## 🔄 AVVIO MANUALE PROCESSO DETECT Se vuoi avviare manualmente il processo detect in background: ```bash # Avvio in background con nohup nohup python3 detect_multi_03.py --ciclo --pausa 5 --batch-size 20000 --sensibility 1 --cleanup --retention-days 0 >> /root/detect.log 2>&1 & # Salva il PID per controllo successivo echo $! > /tmp/detect_ddos.pid ``` ## 📊 MONITORAGGIO E LOG ### Visualizzazione log in tempo reale: ```bash # Log rilevamento DDoS (quello che hai chiesto) tail -f /root/detect.log # Log training (addestramento modelli) tail -f /root/training.log # Log crontab (errori/info gestione automatica) tail -f /root/cron_ddos.log ``` ### Stato dei processi: ```bash # Verifica processo detect attivo ps aux | grep detect_multi # Verifica PID salvato cat /tmp/detect_ddos.pid # Lista completa processi python ps aux | grep python3 ``` ### Stato crontab: ```bash # Visualizza crontab attuale crontab -l # Visualizza log crontab di sistema tail -f /var/log/cron # Test manuale job crontab ./check_detect.sh ``` ## 🛠️ SCRIPT DI CONTROLLO ### check_detect.sh Verifica ogni 5 minuti che il processo detect sia attivo: - Se non trova il processo, lo riavvia automaticamente - Se il log non viene aggiornato da più di 10 minuti, riavvia il processo - Gestisce il file PID per il controllo ### restart_detect.sh Restart completo settimanale del sistema: - Termina il processo esistente gracefully - Pulisce file temporanei - Riavvia il processo detect ## ⚙️ PARAMETRI CONFIGURATI ### Training (ogni 12 ore): - `--training-hours 0.01`: Training rapido (36 secondi) - `--max-records 500000`: Massimo 500k record per training - `--force-training`: Forza training anche se modelli esistono ### Detection (continuo): - `--ciclo`: Esecuzione continua - `--pausa 5`: Pausa 5 secondi tra cicli - `--batch-size 20000`: 20k record per batch - `--sensibility 1`: Massima sensibilità (più aggressivo) - `--cleanup`: Pulizia automatica IP vecchi - `--retention-days 0`: Rimuove IP immediatamente (test) ## 🔧 COMANDI UTILI ### Controllo manuale: ```bash # Restart manuale detect ./restart_detect.sh # Stop processo detect kill $(cat /tmp/detect_ddos.pid) # Avvio manuale training python3 analisys_02.py --training-hours 0.01 --max-records 500000 --force-training # Test connessione database python3 analisys_02.py --test ``` ### Gestione log: ```bash # Pulizia manuale log grandi find /root -name "*.log" -size +100M -exec truncate -s 50M {} \; # Backup log prima della pulizia cp /root/detect.log /root/detect_backup_$(date +%Y%m%d).log # Rotazione log manuale mv /root/detect.log /root/detect_old.log && touch /root/detect.log ``` ### Debug e troubleshooting: ```bash # Verifica permessi script ls -la *.sh # Test script controllo bash -x ./check_detect.sh # Verifica sintassi crontab crontab -l | crontab ``` ## 📅 SCHEDULING DETTAGLIATO | Operazione | Frequenza | Orario | Comando | |------------|-----------|--------|---------| | **Training** | Ogni 12 ore | 00:00, 12:00 | `analisys_02.py` | | **Check Detect** | Ogni 5 minuti | Continuo | `check_detect.sh` | | **Pulizia Log** | Settimanale | Domenica 02:00 | `truncate` log > 100MB | | **Restart** | Settimanale | Domenica 03:00 | `restart_detect.sh` | ## ⚠️ NOTE IMPORTANTI 1. **Percorsi assoluti**: Il crontab usa percorsi assoluti, assicurati che siano corretti 2. **Permessi**: Gli script devono essere eseguibili (`chmod +x`) 3. **Output log**: Tutti gli output sono redirezionati ai file di log 4. **Gestione errori**: Gli script gestiscono automaticamente errori e restart 5. **Monitoraggio**: Il sistema si auto-monitora e auto-ripara 6. **Backup**: Il crontab esistente viene salvato automaticamente ## 🎯 RISULTATO FINALE Con questa configurazione avrai: - ✅ Training automatico ogni 12 ore per modelli sempre aggiornati - ✅ Detection continuo con massima sensibilità (sensibility 1) - ✅ Monitoraggio automatico e restart in caso di problemi - ✅ Log centralizzati in `/root/detect.log` per `tail -f` - ✅ Pulizia automatica per evitare accumulo log - ✅ Restart settimanale per mantenere il sistema pulito