# automated backup export ftp # ftp configuration :local ftphost "172.16.1.5" :local ftpuser "backupusername" :local ftppassword "backupuserpassword" :local ftppath "/backuppath-1" # months array :local months ("jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"); # get time :local ts [/system clock get time] :set ts ([:pick $ts 0 2].[:pick $ts 3 5].[:pick $ts 6 8]) # get Date :local ds [/system clock get date] # convert name of month to number :local month [ :pick $ds 0 3 ]; :local mm ([ :find $months $month -1 ] + 1); :if ($mm < 10) do={ :set mm ("0" . $mm); } # set $ds to format YYYY-MM-DD :set ds ([:pick $ds 7 11] ."-". $mm ."-". [:pick $ds 4 6]) # file name for system backup - file name will be Mikrotik-servername-date-time.backup :local fname1 ("/Router_".[/system identity get name]."_".$ds."_".$ts.".backup") # file name for config export - file name will be Mikrotik-servername-date-time.rsc :local fname2 ("/Router_".[/system identity get name]."_".$ds."_".$ts.".rsc") # backup the data /system backup save name=$fname1 dont-encrypt=yes :log info message="System backup finished (1/2)."; /export file=$fname2 :log info message="Config export finished (2/2)." # upload binary backup :log info message="Uploading system backup (1/2)." /tool fetch address="$ftphost" src-path=$fname1 user="$ftpuser" mode=ftp password="$ftppassword" dst-path="$ftppath/$fname1" upload=yes # upload the config export :log info message="Uploading config export (2/2)." /tool fetch address="$ftphost" src-path=$fname2 user="$ftpuser" mode=ftp password="$ftppassword" dst-path="$ftppath/$fname2" upload=yes # delay time to finish the upload - increase it if your backup file is big :delay 8s; # find file name start with Mikrotik- then remove :foreach i in=[/file find] do={ :if ([:typeof [:find [/file get $i name] "Router_"]]!="nil") do={/file remove $i}; } :log info message="Configuration backup finished.";