Salve, in giro ho trovato molte soluzioni centralizzare per il backup... Un server contatta i dispositivi routeros gli invia i comandi per esportare e scarica... A logica non mi tornava questo discorso, mi sembrava molto piu sicuro fare l'inverso, ovvero i dispositivi fanno partire uno script schedulato che esporta e backuppa tutto e lo invia a un server.
Ho scritto questo servendomi della funzione fetch upload :
:log info "Inizio il Backup"
/beep
#Dichiaro le variabili
:global filename
:global ftpip
:global user
:global pass
:global port
#Setto le variabili
:set filename ([/system identity get name] . "-" . [:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get\ date] 4 6])
:set ftpip 172.22.28.160
:set user backupftp
:set pass passwordseria
:set port 9999
#Eseguo i backup RSC
/export file=$filename
:delay 5
/tool fetch upload=yes mode=ftp user=$user password=$pass address=$ftpip port=$port\
src-path=([/system identity get name] . "-" . [:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".rsc" )\
dst-path=([/system identity get name] . "-" . [:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".rsc" )
:delay 10
:log info "Fatto con l' RSC ora tocca al .BACKUP"
:beep
/system backup save name=$filename
/tool fetch upload=yes mode=ftp user=$user password=$pass address=$ftpip port=$port\
src-path=([/system identity get name] . "-" . [:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".backup" )\
dst-path=([/system identity get name] . "-" . [:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".backup" )
/file remove ([/system identity get name] . "-" . [:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".rsc" )
:delay 2
/file remove ([/system identity get name] . "-" . [:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".backup" )
:delay 2
:log info "Finito!"
:beep frequency=660 length=100ms;
:delay 150ms;
:beep frequency=660 length=100ms;
:delay 300ms;
:beep frequency=660 length=100ms;
:delay 300ms;
:beep frequency=510 length=100ms;
:delay 100ms;
:beep frequency=660 length=100ms;
:delay 300ms;
:beep frequency=770 length=100ms;
:delay 550ms;
:beep frequency=380 length=100ms;
:delay 575ms;
Lo testai su alcune macchine della rete e funzionò, allora ho deciso di applicarlo globalmente in una rete con circa 40 dispositivi.
Quando arriva il giorno del backup però dovrei avere 80 file nella destinazione dell'ftp: 40 .rsc e 40 .backup
Invece mi arrivano circa 60 file in tutto, alcune macchine non riescono nell'invio. Credevo fosse dovuto al limite di connessioni del server ftp ma non è così, ho trasformato il server da standalone in inetd, stesso risultato. Per togliere ogni dubbio ho impostato uno scheduler diverso per ogni dispotitivo. es il primo parte alle 4.00 il secondo alle 4.01 etc... Ma nulla.
Ho iniziato ora a studiarmi un po' di scripting, e devo ammettere che la funzione ([/system identity get name] . "-" . [:pick [/system clock get date] 7 11] . [:pick [/system clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".estensione" )\
L'ho copiata da un altro script. Per dire che ci capisco poco e nulla quindi mi affido a voi per capire dove sta l'errore.
Grazie in anticipo