Skip to content

Config Backup - Backup automatico configurazioni switch di rete Huawei via SSH/Telnet con diff visualization

License

Notifications You must be signed in to change notification settings

mmereu/config-backup

Repository files navigation

Config Backup

Backup automatico delle configurazioni degli switch di rete Huawei via SSH/Telnet con visualizzazione diff.

Automatic backup of Huawei network switch configurations via SSH/Telnet with diff visualization.


Funzionalita / Features

  • Backup manuale per singolo dispositivo (IP o selezione da CSV)
  • Discovery automatica via SNMP + backup di tutti gli switch in una subnet
  • Fallback automatico SSH -> Telnet
  • Diff side-by-side tra configurazioni successive
  • Supporto credenziali multiple con fallback
  • Backup schedulato via cron con report email
  • Storico backup con filtri e ordinamento
  • Interfaccia web moderna con tema chiaro/scuro

  • Manual backup for a single device (IP or CSV selection)
  • Automatic SNMP discovery + backup of all switches in a subnet
  • Automatic SSH -> Telnet fallback
  • Side-by-side diff between successive configurations
  • Multiple credential support with fallback
  • Scheduled backup via cron with email reporting
  • Backup history with filters and sorting
  • Modern web UI with light/dark theme

Architettura / Architecture

config-backup/
  app.py               # Flask application factory
  run.py               # Standalone runner
  routes.py            # API endpoints
  ssh_manager.py       # SSH/Telnet connections (netmiko)
  backup_manager.py    # Save configs, calculate diffs
  database.py          # SQLite metadata storage
  csv_parser.py        # Parse Pdv.CSV for site credentials
  scheduled_backup.py  # Cron-based batch backup with email
  templates/
    index.html          # Main UI
  static/
    css/style.css       # Glassmorphism theme
    js/app.js           # Frontend logic

Requisiti / Requirements

  • Python 3.8+
  • pip packages: flask, flask-cors, netmiko, requests
pip install -r requirements.txt

Configurazione / Configuration

Copia .env.example in .env e modifica i valori. / Copy .env.example to .env and edit the values.

cp .env.example .env
Variabile Descrizione Default
SECRET_KEY Flask secret key change-me-in-production
DISCOVERY_API_URL URL dell'API discovery SNMP http://localhost/api/discover
BACKUP_API_URL URL di questa app (per scheduled backup) http://localhost:5003
SMTP_SERVER Server SMTP per notifiche localhost
SMTP_PORT Porta SMTP 25
SMTP_FROM Email mittente config-backup@example.com
SMTP_TO Email destinatario report admin@example.com

Avvio / Usage

# Sviluppo / Development
python run.py

# Oppure / Or
python app.py

L'applicazione sara disponibile su http://localhost:5003.

The application will be available at http://localhost:5003.

API Endpoints

Metodo Endpoint Descrizione
GET / Web UI
GET /api/sites Lista siti da CSV
POST /api/backup Backup singolo dispositivo
POST /api/backup/subnet Backup per subnet
POST /api/backup/discover-and-backup Discovery SNMP + backup
GET /api/backups Lista storico backup
GET /api/backups/<id> Dettaglio backup
GET /api/backups/<id>/download Download file configurazione
GET /api/diff/<id1>/<id2> Diff tra due backup
GET /api/diff/latest/<sito> Diff ultimi due backup di un sito
GET /api/health Health check

Backup Schedulato / Scheduled Backup

# Esecuzione manuale / Manual run
python scheduled_backup.py

# Dry run (solo log, nessun backup)
python scheduled_backup.py --dry-run

# Solo un sito specifico / Single site
python scheduled_backup.py --site 10

# Cron (ogni giorno alle 2:00)
0 2 * * * cd /path/to/config-backup && python3 scheduled_backup.py >> /var/log/config-backup-scheduled.log 2>&1

CSV Format

Il file Pdv.CSV contiene le credenziali dei siti (non incluso nel repository). The Pdv.CSV file contains site credentials (not included in the repository).

sito;Nome;Network;utente;password;Switch CORE;utente Core;password core
1;Sede Centrale;10.1.4.0/24;admin;pass;10.1.4.251;admin_core;pass_core

Licenza / License

MIT - vedi LICENSE

About

Config Backup - Backup automatico configurazioni switch di rete Huawei via SSH/Telnet con diff visualization

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •