Backup off-site automatici e rotazione dei file
Come spedire automaticamente i backup di RouterOS su un server esterno (SCP/SFTP o FTP), ruotare i file vecchi per non saturare la flash e verificare l'integrità, per una vera strategia di disaster recovery.
Un backup salvato solo sul router NON è un backup: se il dispositivo si guasta o viene rubato, perdi tutto. La regola 3-2-1 (3 copie, 2 supporti diversi, 1 fuori sede) impone di spedire i backup su un server esterno. Questo articolo estende sys-scheduler-backup con upload off-site e rotazione automatica.
Upload con /tool/fetch verso un server SCP/SFTP
/tool/fetch può fare sia download sia upload (upload=yes). SCP/SFTP è preferibile a FTP perché cifra il trasferimento: i backup contengono la configurazione completa e vanno protetti in transito.
# Carica un file locale sul server di backup via SCP
/tool/fetch upload=yes url="scp://10.50.0.10/backup/" \
user=backupbot password="SegretoMoltoLungo" \
src-path="CORE-NAPOLI-01-2026-06-11.backup"
# Variante FTP (NON cifrato: usalo solo su rete fidata/VPN)
# /tool/fetch upload=yes url="ftp://10.50.0.10/backup/" \
# user=backupbot password="..." src-path="config.rsc"Script completo: backup + upload + rotazione
/system/script add name=backup-offsite \
policy=read,write,test,password,sensitive,ftp \
source={
:local nomeRouter [/system/identity get name]
:local dataOggi [/system/clock get date]
:local base ("$nomeRouter-$dataOggi")
:do {
# 1) Genera backup binario + export testuale
/system/backup save name=$base
/export file=$base
# 2) Upload off-site via SCP (cifrato)
/tool/fetch upload=yes url="scp://10.50.0.10/backup/" \
user=backupbot password="SegretoMoltoLungo" \
src-path="$base.backup"
/tool/fetch upload=yes url="scp://10.50.0.10/backup/" \
user=backupbot password="SegretoMoltoLungo" \
src-path="$base.rsc"
:log info ("Backup off-site OK: " . $base)
} on-error={
:log error ("Backup off-site FALLITO per " . $base)
/tool/e-mail send to="noc@dominio.it" \
subject="ALLARME backup fallito $nomeRouter" \
body="Controllare connettività verso il server di backup."
}
# 3) Rotazione: rimuovi i .backup locali piu' vecchi di 7 giorni
:local limite ([/system/clock get time] , " " , [/system/clock get date])
:foreach f in=[/file/find where name~"\\.backup$"] do={
:local creato [/file get $f creation-time]
# confronto semplificato: rimuovi se piu' vecchio di 1 settimana
# (in produzione usa una funzione di parsing data dedicata)
}
# Pulizia robusta basata sull'eta' dei file:
/file/remove [/file/find where (name~"\\.backup$" or name~"\\.rsc$") \
and (creation-time < ([/system/clock get date] - 7d))]
}Pianificare e testare
# Pianifica ogni notte alle 03:15
/system/scheduler add name=backup-offsite-job \
start-time=03:15:00 interval=1d on-event=backup-offsite \
comment="Backup notturno + upload off-site + rotazione"
# Test manuale (verifica log e arrivo file sul server)
/system/script run backup-offsite
/log print where message~"Backup off-site"Verifica di ripristino: il backup serve solo se si ripristina
- Backup binario:
/system/backup load name=NOMEFILE(richiede stesso modello/architettura e RouterOS compatibile). - Export testuale:
/import file-name=NOMEFILE.rsc(portabile, ma rivedi sempre le righe applicate). - Almeno una volta all'anno, ripristina un backup su un router di laboratorio per verificare che la procedura funzioni davvero.
password= per i router più sensibili; (4) il connettore on-prem WispOS può fungere da hub di raccolta backup su LAN, evitando di esporre credenziali nel cloud. La rotazione locale è indispensabile: senza pulizia la flash si satura e i backup successivi falliscono in silenzio.Continua con
Configura senza fatica con l'AI
In WispOS l'agente AI genera la configurazione RouterOS dalle tue parole e un tutor ti guida passo passo.
Prova WispOS