- Tipo: patch - Database schema: database-schema/schema.sql (solo struttura) - Data: 2025-11-21 15:45:57
109 lines
4.0 KiB
Bash
Executable File
109 lines
4.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Script per configurare crontab per il sistema IDS
|
|
# Eseguire con: chmod +x setup_crontab.sh && sudo ./setup_crontab.sh
|
|
|
|
# Colori per output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m'
|
|
|
|
echo -e "${BLUE}🔧 CONFIGURAZIONE CRONTAB SISTEMA IDS${NC}"
|
|
echo "=================================================="
|
|
|
|
# Rileva percorso corrente
|
|
IDS_DIR="/opt/ids"
|
|
echo -e "${YELLOW}📁 Directory IDS: ${IDS_DIR}${NC}"
|
|
|
|
# Percorsi dei log
|
|
TRAINING_LOG="/var/log/ids/training.log"
|
|
DETECT_LOG="/var/log/ids/detect.log"
|
|
FRONTEND_LOG="/var/log/ids/frontend.log"
|
|
BACKEND_LOG="/var/log/ids/backend.log"
|
|
CRON_LOG="/var/log/ids/cron.log"
|
|
|
|
# Crea directory log
|
|
mkdir -p /var/log/ids
|
|
chown -R ids:ids /var/log/ids
|
|
|
|
echo -e "${YELLOW}📄 Log files:${NC}"
|
|
echo -e " • Training: ${TRAINING_LOG}"
|
|
echo -e " • Detection: ${DETECT_LOG}"
|
|
echo -e " • Frontend: ${FRONTEND_LOG}"
|
|
echo -e " • Backend Python: ${BACKEND_LOG}"
|
|
echo -e " • Crontab: ${CRON_LOG}"
|
|
|
|
# Crea backup del crontab esistente
|
|
echo -e "\n${BLUE}💾 Backup crontab esistente...${NC}"
|
|
crontab -u ids -l > /tmp/crontab_backup_$(date +%Y%m%d_%H%M%S) 2>/dev/null || echo "Nessun crontab esistente"
|
|
|
|
# Crea il nuovo crontab
|
|
echo -e "\n${BLUE}⚙️ Configurazione nuovo crontab...${NC}"
|
|
|
|
cat > /tmp/new_crontab << EOF
|
|
# ============================================
|
|
# SISTEMA IDS - CONFIGURAZIONE AUTOMATICA
|
|
# ============================================
|
|
|
|
# Training ML ogni 12 ore (alle 00:00 e 12:00)
|
|
0 */12 * * * ${IDS_DIR}/deployment/cron_train.sh
|
|
|
|
# Detection automatica ogni 5 minuti
|
|
*/5 * * * * ${IDS_DIR}/deployment/cron_detect.sh
|
|
|
|
# Verifica processo backend Python ogni 5 minuti (riavvia se non attivo)
|
|
*/5 * * * * ${IDS_DIR}/deployment/check_backend.sh >> ${CRON_LOG} 2>&1
|
|
|
|
# Verifica processo frontend ogni 5 minuti (riavvia se non attivo)
|
|
*/5 * * * * ${IDS_DIR}/deployment/check_frontend.sh >> ${CRON_LOG} 2>&1
|
|
|
|
# Pulizia log settimanale (ogni domenica alle 02:00)
|
|
0 2 * * 0 find /var/log/ids -name "*.log" -size +100M -exec truncate -s 50M {} \; >> ${CRON_LOG} 2>&1
|
|
|
|
# Restart completo del sistema ogni settimana (domenica alle 03:00)
|
|
0 3 * * 0 ${IDS_DIR}/deployment/restart_all.sh >> ${CRON_LOG} 2>&1
|
|
|
|
# Backup database giornaliero (alle 04:00)
|
|
0 4 * * * ${IDS_DIR}/deployment/backup_db.sh >> ${CRON_LOG} 2>&1
|
|
EOF
|
|
|
|
# Installa il nuovo crontab
|
|
crontab -u ids /tmp/new_crontab
|
|
|
|
echo -e "${GREEN}✅ Crontab configurato con successo!${NC}"
|
|
|
|
# Rendi eseguibili gli script esistenti
|
|
chmod +x ${IDS_DIR}/deployment/cron_train.sh
|
|
chmod +x ${IDS_DIR}/deployment/cron_detect.sh
|
|
chmod +x ${IDS_DIR}/deployment/check_backend.sh
|
|
chmod +x ${IDS_DIR}/deployment/check_frontend.sh
|
|
chmod +x ${IDS_DIR}/deployment/restart_all.sh
|
|
chmod +x ${IDS_DIR}/deployment/backup_db.sh
|
|
|
|
# Avvio immediato dei processi
|
|
echo -e "\n${BLUE}🚀 Avvio immediato dei processi...${NC}"
|
|
sudo -u ids ${IDS_DIR}/deployment/check_backend.sh
|
|
sudo -u ids ${IDS_DIR}/deployment/check_frontend.sh
|
|
|
|
echo -e "\n${GREEN}✅ CONFIGURAZIONE COMPLETATA!${NC}"
|
|
echo ""
|
|
echo -e "${YELLOW}📋 COMANDI UTILI:${NC}"
|
|
echo -e " • Visualizza log backend: ${BLUE}tail -f ${BACKEND_LOG}${NC}"
|
|
echo -e " • Visualizza log frontend: ${BLUE}tail -f ${FRONTEND_LOG}${NC}"
|
|
echo -e " • Visualizza log training: ${BLUE}tail -f ${TRAINING_LOG}${NC}"
|
|
echo -e " • Visualizza log detection: ${BLUE}tail -f ${DETECT_LOG}${NC}"
|
|
echo -e " • Stato crontab: ${BLUE}crontab -u ids -l${NC}"
|
|
echo -e " • Stato processi: ${BLUE}ps aux | grep -E 'python.*main|npm.*dev'${NC}"
|
|
echo -e " • Restart manuale: ${BLUE}sudo ${IDS_DIR}/deployment/restart_all.sh${NC}"
|
|
echo ""
|
|
echo -e "${YELLOW}⚠️ IMPORTANTE:${NC}"
|
|
echo -e " • Training automatico ogni 12 ore"
|
|
echo -e " • Detection automatica ogni 5 minuti"
|
|
echo -e " • Monitoring processi ogni 5 minuti"
|
|
echo -e " • Restart automatico ogni domenica alle 03:00"
|
|
echo -e " • Backup database giornaliero alle 04:00"
|
|
echo ""
|
|
echo -e "${GREEN}🎉 Sistema IDS configurato per l'esecuzione automatica!${NC}"
|