# Backup Automatizzato per MikroTik RouterOS Questo script automatizza il processo di backup per un router MikroTik RouterOS, esportando la configurazione e inviandola via email. ## Informazioni Generali - **Script creato da**: Mattia Tadini - **Data creazione**: 2024-02-05 - **Ultima modifica**: 2024-11-19 - **Versione di RouterOS testata**: 7.16.1 - **Compatibilità**: Non funziona su versioni più vecchie di RouterOS 6.49 (processo di aggiornamento e nomi dei valori diversi) ## Funzionamento del Script ### Passaggi dell'Script 1. **Logging Inizio Backup** ``` :log info "Backup beginning now" ``` Registra l'inizio del processo di backup. 2. **Impostazione Variabili per l'Email** ``` :global mail brass@relay.poloinformatico.it ``` Imposta l'indirizzo email a cui verranno inviati i file di backup. 3. **Ottenimento della Data Corrente** ``` :global getadate [/system clock get date] ``` Ottiene la data corrente dal sistema del router e la memorizza nella variabile `getadate`. 4. **Creazione Nome del File di Backup** ``` :global backupfile (."BACKUP-". [/system identity get name] . "-" . [:pick $getadate 8 10 ] ."-". [:pick $getadate 5 7 ] . "-" . [:pick $getadate 0 4 ]) ``` Crea il nome del file di backup, che include il nome dell'host del router e la data attuale. 5. **Creazione Nome del File di Esportazione Configurazione** ``` :global exportrsc (."RSC-". [/system identity get name] . "-" . [:pick $getadate 8 10 ] ."-". [:pick $getadate 5 7 ] . "-" . [:pick $getadate 0 4 ]) ``` Crea il nome del file di esportazione configurazione, seguendo un formato simile. 6. **Esportazione della Configurazione** ``` /export file=$exportrsc ``` Esporta la configurazione corrente del router nel file specificato da `exportrsc`. 7. **Pausa di 10 Secondi** ``` :delay 10s ``` Attende 10 secondi. 8. **Salvataggio del Backup** ``` /system backup save name=$backupfile ``` Salva un backup completo della configurazione del router nel file specificato da `backupfile`. 9. **Pausa di 10 Secondi** ``` :delay 10s ``` Attende 10 secondi. 10. **Preparazione della Lista dei File** ``` :global files {$backupfile;$exportrsc} ``` Crea una lista di entrambi i file di backup e di esportazione configurazione che verranno inviati via email. 11. **Invio dell'Email con i File di Backup** ``` /tool e-mail send to=$mail subject=("Backup RouterOS on router " . [/system identity get name] . " Backup " . [:pick $getadate 8 10 ] ."-". [:pick $getadate 5 7 ] . "-" . [:pick $getadate 0 4 ]) file=$files ``` Invia un'email all'indirizzo specificato con un soggetto che indica la data del backup e il nome dell'host del router, inclusi i due file di backup. 12. **Logging Completamento Backup** ``` :log info "Backup finished" ``` Registra l'completion del processo di backup. ``` ## Come Utilizzare lo Script 1. **Creazione del File `.nsh`**: - Crea un nuovo file con estensione `.nsh`. - Inserisci lo script fornito sopra nel file. 2. **Caricamento del Script sul Router**: - Carica il file `.nsh` sul tuo router MikroTik usando l'interfaccia web di gestione o SSH. - Esegui lo script dal terminale del router con il comando `system script run nome_script`. 3. **Programmazione del Backup (Facoltativo)**: - Puoi programmare lo script per eseguirsi automaticamente ad intervalli regolari utilizzando la funzione di pianificazione dei task nel sistema del router. ### Note - Assicurati che il tuo router sia connesso a Internet e che l'indirizzo email specificato abbia accesso alla tua posta. - Verifica che il modulo `tool e-mail` sia installato sul tuo router. Puoi verificare questo dalla interfaccia web del router o utilizzando il comando `ip firewall service list`. ## Conclusioni Questo script è un strumento utile per automatizzare i backup della configurazione di un MikroTik RouterOS, assicurandoti che le tue impostazioni siano sicure e facilmente ripristinabili nel caso di problemi o aggiornamenti del sistema. --- ### Contribuisci Se vuoi contribuire al progetto, fai un fork del repository su Gitea e invia una pull request con le tue modifiche. **Ricorda**: Assicurati che tutte le modifiche siano documentate nel manuale del progetto per facilitare la comprensione da parte di altri utenti.