Mikrotik i backup codzienny

Tak jak w przypadku The Dude tak samo przydaje się mieć backup ustawień z urządzeń Mikrotik rozsianych po sieci. Po co utrudniać sobie życie jak można ułatwić, wykorzystując do tego samo urządzenie i automatyzując sam proces. Sam backup polega na wygenerowaniu pliku binarnego .backup oraz pliku tekstowego .rsc. Osobiście wolę mieć oba, pierwszy wgrywam, drugi mam do podglądu wszystkich ustawień.

/system script
add name=FTPBackup owner=admin policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive source=":log info \"\
    Starting Automatic Backup Script Configure By cr0c0dil3\"\r\
    \n:log info \"Modyfikowany przez Marcin Morawiec\"\r\
    \n:global thisdate [/system clock get date]\r\
    \n:global datetimestring ([:pick \$thisdate 4 6] .\"-\" . [:pick \$thisdate 0 3\
    ] .\"-\" . [:pick \$thisdate 7 11])\r\
    \n\r\
    \n/system backup save name=\"\$[/system identity get name]_\$datetimestring\" \
    \r\
    \n:log info \"Backup Please wait...!!!\"\r\
    \nexport compact file=\"\$[/system identity get name]_\$datetimestring\"\
    \_\r\
    \n:log info \"Export Please wait...!!!\"\r\
    \n:delay 5s\r\
    \n:log info \"Sending Backup Mikrotik to FTP Server.............\"\r\
    \n/tool fetch address=ip_address src-path=\"\$[/system identity get name]_\$\
    datetimestring.backup\" user=user password=password port=21 upload=yes \
    ascii=no mode=ftp dst-path=\"/backup/\$[/system identity get name]_\$datetimest\
    ring.backup\"\r\
    \n:log info \"Sending Export Mikrotik to FTP Server.............\"\r\
    \n/tool fetch address=ip_address src-path=\"\$[/system identity get name]_\$\
    datetimestring.rsc\" user=user password=password port=21 upload=yes asc\
    ii=no mode=ftp dst-path=\"/backup/\$[/system identity get name]_\$datetimestrin\
    g.rsc\"\r\
    \n:delay 5s\r\
    \n:log info \"Deleting Backup Files\"\r\
    \n/file remove \"\$[/system identity get name]_\$datetimestring.rsc\"\r\
    \n/file remove \"\$[/system identity get name]_\$datetimestring.backup\"\r\
    \n:log info message=\"Successfully removed Temporary Backup Files\"\r\
    \n:delay 1\r\
    \n:log info \"Finished Backup Script...!!!!\""
  
/system scheduler
add interval=1d name=FTPBackupMT on-event="/system script run FTPBackup" policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive start-date=\
    apr/01/2016 start-time=00:00:15

Skrypt wzorowany jest na znalezionym w internecie tutaj. Przejrzysty, składa się z kilku poleceń. Łatwo można dostosować go do siebie. Pamiętać należy o podaniu swojego IP serwera FTP, użytkownika i hasła oraz ścieżki na serwerze gdzie ma być składowany backup. U mnie backup ląduje na serwerze NAS4FREE gdzie w odstępach tygodniowych protokołem rsync wędrują na kolejnego NASa. W planach jest jeszcze opcja szyfrowania archiwum i wysyłania go na pocztę aby mieć kolejną kopię w innej lokalizacji.

Comments

SQ9IWE pisze:

Niestety jest problem w wersji 6.30.4 i w nowszych też,nie usuwa plików bo zrobieniu kopii na FTP

Marcin pisze:

Mam w sieci setkę urządzeń, sukcesywnie przechodzę z fw. i mam 6.32 6.34 i 6.38.5 i nie mam takiego problemu.
Takie zdarzenie występuje gdy skrypt nie prześle pliku, nie przejdzie do następnego kroku tylko zostanie zakończony, tym samym pliki pozostaną. Nie są to ogromne ilości MB, co przy codziennym backapie nie powinno zapchać urządzeń w przeciągu roku czy dwóch. Backup zajmuje ok. 50-100KB co daje rocznie jakieś 36MB, moje stare Routerboardy mają 64MB, nowe 128MB.

PK0MP pisze:

Przestały działać twoje zaklęcia po Maju 2018. Czy wiesz co się pozmieniało że przestało wysyłać przez ftp?

Marcin pisze:

Nie wiem co się pozmieniało, na pewno nie raz robiłem aktualizację RouterOS i wszystko działa dalej poprawnie. Mam kilka lokalizacji zdalnych gdzie wysyłają się kopie i wszystko działa ok. W sieci przeszedłem na oxidized i nim zarządzam kopiami.

Amadeusz pisze:

Cześć

Mam mały problem z Twoim skryptem, mianowicie do pliku rsc zrzuca wszystko od pozycji /clock, nic wcześniej nie ma, ani wireless, ani interfaces, możesz coś pomóc?

Marcin pisze:

Nie wiem jak przez ten czas w skrypcie było polecenie export ale tylko dla gałęzi system, eksport w skrypcie jest dokonywany tylko dla pozycji zmienionych. Widocznie zmieniłeś ustawienia tylko dla gałęzi /system clock.
Zmodyfikowałem skrypt aby eksportował wszystkie ustawienia, powinno już być ok.

Amadeusz pisze:

Pozycje zmienione zaczynają się u mnie od interfaces, vlany, tunele, etc, po modyfikacji skryptu wszystko działa, wielkie dzięki

Skomentuj Amadeusz Anuluj pisanie odpowiedzi