MikroTik: Auto-Backup der Routerkonfiguration via FTP

Einführung

Folgend wird beschrieben, wie man seinen MikroTik Router automatisch sichert und das Backup auf einen FTP-Server überträgt. Zielsetzung ist die folgende:

  • Erstellung eines Exports und eines Backups
  • Speicherung des letzten Backups/Exports auf dem Router selbst
  • Übertragung der Dateien auf einen FTP-Server

Vorbedingungen

  • MikroTik RouterBoard, z.B. ein MikroTik hEX
  • FTP-Server im LAN

Quellen

Los geht's

Skript

## environment specific configuration
:local ftpServer    "1.2.3.4"
:local ftpUser      "user"
:local ftpPassword  "pass"
:local ftpPath      "/"

:local dstFile      "backup"
:local srcFile $dstFile
:local myVer value=[/system package update get installed-version];
:local id value=[/system identity get value-name=name];
:local date value=[/system clock get date];

## replace "/" with "-" in date
:local newdate value="";
:if ([:find $date "/" -1] > 0) do={
 :for i from=0 to=([:len $date] -1) step=1 do={
  :local actualchar value=[:pick $date $i];
  :if ($actualchar = "/") do={ :set actualchar value="-" };
  :set newdate value=($newdate.$actualchar);
 }
};

## construct destination file name
:set dstFile ($dstFile . "-" . $id . "-" . $myVer . "-" . $newdate);

## perform the actual backup / export
/system backup save name="$srcFile"
/export file="$srcFile"

## upload both files via FTP
:foreach i in=(".backup", ".rsc") do={
  /tool fetch address=$ftpServer src-path=($srcFile . $i) user=$ftpUser mode=ftp password=$ftpPassword dst-path=($ftpPath . $dstFile . $i) upload=yes port=21
}

## Log
:log info ("Configuration backup created on router $[/system identity get name].")

Scheduler

Nachdem das Skript unter dem Namen “backup-config” angelegt wurde, kann man es mit folgendem Befehl täglich um 3:00 Uhr ausführen lassen:

/system scheduler
add interval=1d name=backup-config on-event=backup-config start-date=jan/05/2019 start-time=03:00:00