{"id":207,"date":"2013-08-03T14:19:14","date_gmt":"2013-08-03T13:19:14","guid":{"rendered":"http:\/\/zsteva.info\/?p=207"},"modified":"2013-08-03T14:19:14","modified_gmt":"2013-08-03T13:19:14","slug":"mikrotik-config-archiver","status":"publish","type":"post","link":"http:\/\/zsteva.info\/blog\/2013\/08\/mikrotik-config-archiver\/","title":{"rendered":"MikroTik config archiver"},"content":{"rendered":"<p>Sve treba backupovati, a pogotovo configuracije bitnih uredjaja u mre\u017ei. Usput je lepo ako se ima istorijat promena. \u0160to odmah sugeri\u0161e neki sistem za cuvanja revizija (cvs, svn, git &#8211; izbor u ovom slu\u010daju) \ud83d\ude42 Programerima su vrlo poznati, nadam se da i ve\u0107ina administratora u dobroj meri poznaje i koristi takve alatke. Sve to naravno ima smisla ako je konfiguracija obi\u010dan text fajl, \u0161to u slu\u010daju MikroTika je tako.<\/p>\n<p>Scripta napisana pre 4-5 meseci, ali se pojavio problem da &#8220;ssh uredjaj \/export&#8221; ne radi kad se scripta pokrene kao cron task. \u0160to fakti\u010dki zna\u010di da bi morala da radi iz neke screen sesije ili da se ru\u010dno pokre\u0107e, \u0161to je skoro ne prihvatljivo za ovako jednostavnu i malu scriptu. Ali danas mi <a href=\"https:\/\/www.facebook.com\/supurovic\" target=\"_blank\">Pedja Supurovic<\/a> predlo\u017ei re\u0161enje za problem, tako sad mo\u017ee da funkcioni\u0161e kako treba. Postoji mali side efekat sa re\u0161enjem, a to je da scripta mora da se kaci na user koji ima full privilegije na MT, za originalno re\u0161enje je bio dovoljan read access&#8230;<\/p>\n<p>scripta:<\/p>\n<pre lang=\"shell\" line=\"1\">\r\n#!\/bin\/bash\r\n\r\ndeclare -A ROUTERS\r\nROUTERS[ruter-1-1]=\"backup@192.168.1.1\"\r\nROUTERS[ruter-2-1]=\"backup@192.168.2.1\"\r\nROUTERS[ruter-3-1]=\"backup@192.168.3.1\"\r\nDSAKEY=\"mt_archiver\"\r\n\r\ncd $(dirname $0)\r\n\r\nif [ ! -d .git ]; then\r\n\tgit init .\r\nfi\r\n\r\nif [ ! -f .gitignore ]; then\r\n\techo \"*.tmp\" >> .gitignore\r\n\tgit add .gitignore\r\nfi\r\n\r\ngit add $(basename $0)\r\n\r\nfor ROUTER in \"${!ROUTERS[@]}\"; do\r\n\tssh -i $DSAKEY ${ROUTERS[$ROUTER]} \/export file=bkpcfg && (\r\n\t\tscp -i $DSAKEY ${ROUTERS[$ROUTER]}:bkpcfg.rsc ${ROUTER}.cfg.tmp && (\r\n\t\t\tcat ${ROUTER}.cfg.tmp | tail -n +2 > ${ROUTER}.cfg\r\n\t\t\tgit add ${ROUTER}.cfg\r\n\t\t)\r\n\t)\r\ndone\r\n\r\ngit diff --cached  | cat\r\n\r\ndate | git commit -a -F- > \/dev\/null 2>&1\r\n<\/pre>\n<p>Potrebno je napraviti ssh par klju\u010deva (imenovati mt_archiver, ili ve\u010d u scripti dati putanju do postoje\u0107eg klju\u010da). Podesiti pristup ruterima. I srediti listu uredjaja. Scripta razlike u odnosu na prethodnu verziju printa na stdout-u, pa ako primate mailove od crona, uvek kad se desi neki problem (nedostupan uredjaj) ili se pojavi promena u kofiguraciji na mail \u0107e vam sti\u0107i diff -u \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sve treba backupovati, a pogotovo configuracije bitnih uredjaja u mre\u017ei. Usput je lepo ako se ima istorijat promena. \u0160to odmah sugeri\u0161e neki sistem za cuvanja revizija (cvs, svn, git &#8211; izbor u ovom slu\u010daju) \ud83d\ude42 Programerima su vrlo poznati, nadam &hellip; <a href=\"http:\/\/zsteva.info\/blog\/2013\/08\/mikrotik-config-archiver\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[6,135],"tags":[33,92,91,90,130,89,48,37],"_links":{"self":[{"href":"http:\/\/zsteva.info\/blog\/wp-json\/wp\/v2\/posts\/207"}],"collection":[{"href":"http:\/\/zsteva.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/zsteva.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/zsteva.info\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/zsteva.info\/blog\/wp-json\/wp\/v2\/comments?post=207"}],"version-history":[{"count":7,"href":"http:\/\/zsteva.info\/blog\/wp-json\/wp\/v2\/posts\/207\/revisions"}],"predecessor-version":[{"id":214,"href":"http:\/\/zsteva.info\/blog\/wp-json\/wp\/v2\/posts\/207\/revisions\/214"}],"wp:attachment":[{"href":"http:\/\/zsteva.info\/blog\/wp-json\/wp\/v2\/media?parent=207"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/zsteva.info\/blog\/wp-json\/wp\/v2\/categories?post=207"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/zsteva.info\/blog\/wp-json\/wp\/v2\/tags?post=207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}