Update log processing to use the correct timestamp field and introduce cron jobs for automated model training and anomaly detection. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7a657272-55ba-4a79-9a2e-f1ed9bc7a528 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: f0653fd5-fc94-4fcb-8d7e-2a0e90fc81bf Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/449cf7c4-c97a-45ae-8234-e5c5b8d6a84f/7a657272-55ba-4a79-9a2e-f1ed9bc7a528/MkBJZ0L
36 lines
949 B
Bash
36 lines
949 B
Bash
#!/bin/bash
|
|
# =========================================================
|
|
# CRON TRAINING - Addestramento automatico modello ML
|
|
# =========================================================
|
|
# Esegue training ogni 12 ore con 100K log più recenti
|
|
# =========================================================
|
|
|
|
# Logging
|
|
LOG_FILE="/var/log/ids/training.log"
|
|
mkdir -p /var/log/ids
|
|
exec >> "$LOG_FILE" 2>&1
|
|
|
|
echo "========================================="
|
|
echo "🤖 [$(date)] TRAINING AUTOMATICO AVVIATO"
|
|
echo "========================================="
|
|
|
|
# Esegue training via API
|
|
curl -X POST http://localhost:8000/train \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"max_records": 100000,
|
|
"hours_back": 24,
|
|
"contamination": 0.01
|
|
}' \
|
|
--max-time 300
|
|
|
|
EXIT_CODE=$?
|
|
|
|
if [ $EXIT_CODE -eq 0 ]; then
|
|
echo "✅ [$(date)] Training completato con successo"
|
|
else
|
|
echo "❌ [$(date)] Training fallito (exit code: $EXIT_CODE)"
|
|
fi
|
|
|
|
echo ""
|