ids.alfacom.it/deployment/setup_crontab.sh
Marco Lanzara 2041d3926f 🚀 Release v1.0.23
- Tipo: patch
- Database schema: database-schema/schema.sql (solo struttura)
- Data: 2025-11-21 15:45:57
2025-11-21 15:45:57 +00:00

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}"