Backup-RouterOS/readme.md
2024-11-29 16:19:48 +00:00

117 lines
4.3 KiB
Markdown

# 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.