# Mikrotik RouterOS backup script ## Postopek ### Strežnik Najprej je potrebna priprava strežnika. Skripta bi morala delovati na vseh sistemih na katerih teče python. Na strežniku mora biti nameščen Python3 ter nekaj knjižnic: paramiko, git, time. Na strežniku mora biti ustvarjen SSH ključ. ### Mikrotikove naprave Na Mikrotikovih napravah, za katere želimo narediti varnostno kopijo konfiguracije na Git strežniku, je potrebno ustvariti "skupino" (oz. group) za uporabnika s sledečimi pravicami: ssh, ftp, read, write, sensitive. Nato je treba ustvariti uporabnika, ki ima dodan prej generiran javni SSH ključ. Tako bo omogočena varna prijava preko protokola SSH na Mikrotikovo napravo brez gesla. Zagotovljeno mora biti tudi, da ima strežnik dostop do vrat 22 oz. nastavljenih SSH vrat na Mikrotiku. ### Git Strežnik Uporabniški račun, preko katerega bodo kopije konfiguracij nalagane na strežnik, mora imeti dodan javni SSH ključ strežnika, ki omogoča varno prijavo brez gesla. Pripravljen mora biti repozitorij, ki mora biti tudi kloniran na strežnik namenjen varnostnim kopijam. Nujno je, da so znotraj repozitorija pripravljene mape, ki imajo enako ime kot lokacije na seznamu. ### Priprava skripte Za delovanje skripte so potrebne 3 datoteke: - main.py -> Glavna skripta - config.py -> Parametri potrebni za delovanje skripte - devices.csv -> Seznam naprav, ki jih bo strežnik varnostno kopiral Ko so naprave vpisane v seznam in so potrebni parametri pripravljeni v datoteki config.py, je potrebno le še pognati skripto oziroma nastaviti avtomatsko izvajanje skripte, na primer enkrat na dan. Skripta je zasnovana tako, da na Git strežnik nalaga le popravke. Če sprememb ni, skripta ne naloži ničesar. Primer datoteke devices.csv ``` Location,DeviceName,HostName,Port,User Nanos,Router,192.168.2.3,22,backupscript ``` V tem primeru se torej skripta priklaplja na router na **Nanosu**, ki ima IP **192.168.2.3**, SSH posluša na vratih **22**. Za priklop nanj je uporabljen uporabnik **backupscript**. Kot prej rečeno je nujno, da je tudi ustvarjena mapa **Nanos** oz. mapa z imenom uporabljene lokacije. Skripta izvede varnostno kopijo na vseh napravah, ki so vpisane na seznam.