База знаний

www. IT-Mehanika .ru --  журнал доброго админа

BackUP RouterOS и отправка его на почту

Приветствую Вас.

Недавно у моего товарища случилась беда с одним из устройств Mikrotik, в следствии чего я помогал ему произвести восстановление рабочего состояния с помощью NetInstall. Ситуация падения устройства банальна и очень обидна. Потому что, как правильный IT-шник он сделал генерирование бекапов на самом устройстве, но упустил одну очень важную вещь, то что при генерировании каждого бекапа, в него входит полностью конфигурация всего устройства, а также все файлы бекапа находящиеся в пункте меню Files. Соответственно, при каждом новом бекапе, в него попадали старые бекапы и объем занимаемого пространства на nand flash устройстве возрастала в геометрической прогрессии, что в конце заняло полностью все пространство на flash, и когда мой друг перезагрузил устройство, то оно не загрузилось, т.к. не было свободного пространства. При этом ни одного бекапа на компьютере не было, что еще было катастрофичней, ему пришлось настраивать устройство почти с нуля.

Поэтому опишу способ бекапа Mikrotik RouterOS с отправкой его на почту. Благо в настоящее время объемы почтовых ящиков позволяют хранить файлы, тем более бекап Mikrotik RouterOS занимает всего лишь порядка 150 Килобайт, и это согласитесь очень мало, даже имея на почте около 1000 бекапов, занятое пространство будет небольшим. Я делаю бекап своей системы 1 раз в неделю, в выходной день и отправляю его на почту.

В этой статье я и опишу как я это делаю.

Для начала идем System -> Scripts -> [+]

Вводим название нашего скрипта в поле: Name -> backup_to_email

В поле Source: 

:log info "==========================================================";

:log info "BACKUP SCRIPT:Starting Backup Script...";

:local SystemName [/system identity get name];

:local SystemVer [/system package get system version];

:log info "BACKUP SCRIPT: Flushing DNS cache...";

/ip dns cache flush;

:delay 2;

:log info "BACKUP SCRIPT: Deleting last Backups...";

:foreach i in=[/file find] do={:if ([:typeof [:find [/file get $i name] \

"$sysname-backup-"]]!="nil") do={/file remove $i}};

:delay 2;

:local smtpserv [:resolve "smtp.gmail.com"]; ### <<--В кавычках вписываем свой smtp сервер почтаря

:local EmAccount "Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. "; ###<<-- В кавычках вписываем почтовый ящик от которого будет посылаться бекап

:local ToAccount "Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. "; ###<<--- Выписываем почтовый ящик куда будет посылаться бекап.

:local Pass "your_password"; ### <<--- Вписываем пароль от почтового ящика Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.

:local BackupFile ("$sysname-backup-" . \

[:pick [/system clock get date] 7 11] . [:pick [/system \

clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".backup");

:log info "BACKUP SCRIPT: Creating new Full Backup file...";

/system backup save name=$BackupFile;

:delay 2;

:log info "BACKUP SCRIPT: Sending Full Backup file via E-mail...";

/tool e-mail send from="" to=$ToAccount server=$smtpserv \

port=587 user=$EmAccount password=$Pass start-tls=yes file=$BackupFile \ ### <<--Вписываем порт который слушает smtp сервер, а также tls=yes/no

subject=("$sysname Full Backup (" . [/system clock get date] . ")") \

body=("$sysname full Backup file see in attachment.\nRouterOS version: \

$sysver\nTime and Date stamp: " . [/system clock get time] . " " . \

[/system clock get date]\n "by Fedorov Vitaly site: tranz-it.net");

:delay 5;

:local ExportFile ("$sysname-backup-" . \

[:pick [/system clock get date] 7 11] . [:pick [/system \

clock get date] 0 3] . [:pick [/system clock get date] 4 6] . ".rsc");

:log info "BACKUP SCRIPT: Creating new Setup Script file...";

/export file=$ExportFile;

:delay 2;

:log info "BACKUP SCRIPT: Sending Setup Script file via E-mail...";

/tool e-mail send from="" to=$ToAccount server=$smtpserv \

port=587 user=$EmAccount password=$Pass start-tls=yes file=$ExportFile \### <<--Вписываем порт который слушает smtp сервер, а также tls=yes/no

subject=("$sysname Setup Script Backup (" . [/system clock get date] . \

")") body=("$sysname Setup Script file see in attachment.\nRouterOS \

version: $sysver\nTime and Date stamp: " . [/system clock get time] . " \

" . [/system clock get date]\n "by Fedorov Vitaly site: tranz-it.net");

:delay 5;

:log info "All System Backups emailed successfully.";

:log info "Backuping completed.";

:log info "==========================================================";


Данный скрипт уже адаптирован по почтовый сервер gmail.com, но очень легко его подогнать под другие почтовые сервера, я его перенастраивал под yandex.ru, возможно подкорректировав параметры в скрипте использовать корпоративный почтовый сервер.

После вписывания своих данных в скрипт, а также отладки на отправку бекапа на мыло, добавляем его в scheduler Mikrotik

System -> Scheduler -> [+]

Пишем имя шедулера, а в On Event пишем: /system script run backup_to_email

В поле интервал выставляем интервал запуска бекапа и отправки на почту, я ставлю порядка 7 дней, т.е. 1 раз в неделю, этого достаточно, можно выставить и 14 дней, все зависит от количества сделанных изменений за это время.

Данный скрипт создает два вида бекапа, это файл .backup и файл .rsc  Оба файла имеют маленький размер, порядка 150-250 килобайт. Думаю многим пригодиться такой вид системного резервного копирования настроек маршрутизатора Mikrotik. Так же скрипт можно переработать и сделать, например, оповещение на почту о переключении интернет каналов или проблем в сети.

Пользуйтесь.

Комментарии   

0 #18 Виталий 28.12.2013 02:47
"И вы на верном пути джедая, перезабивая настройки вручную - без бекапов скилл реально прокачивается,. .. "
Прям как про игру в Mikrotik. :) А мысль правильная, скилы прокачиваются отлично. ИМХО, только это делать надо на стендовой железке, дабы клиенты спали спокойно и нервы у всех были впорядке.
0 #17 mrbublik 18.12.2013 00:40
Да не горячись ты... Они тока и ждут ))))
0 #16 Виталий 17.12.2013 22:14
А для людей думающих что они супер какие гуру, и им не нужны бекапы, могу сказать одно. Дорогие вы наши специалисты, НИ В КАКИХ СЛУЧАЯХ НЕ ДЕЛАЙТЕ БЕКАПЫ, ЭТО ВАМ НЕ НУЖНО. ЗАЧЕМ ЗАСОРЯТЬ МУСОРОМ ВАШИ СВЕТЛЫЕ МОЗГИ. НЕ ДЕЛАЙТЕ ЭТИХ ДУРАЦКИХ БЕКАПОВ. Нам будет больше работы после вас, с достойными заработками.
0 #15 mrbublik 17.12.2013 15:54
Ох я вас умоляю ... О бекапах как о мертвых - или хорошо, или ничего )))) Вспоминаем мы о них как о божественном - "в беде или всуе" :) Забыл организовать бекапы, потом до п...ца не вспомнишь. А когда вспомнишь будешь везде истерично перерывать все флешки, диски и прочее с намеком на "где-то я эту б... копировал". :)
0 #14 Виталий 17.12.2013 15:41
Интересный вы человек Дмитрий, если не ошибаюсь. Вы не знаете о чем поговорить ведя речь о телевизоре. Если вы считаете что ответ ни о чем, не читайте и не задавайте тогда глупых вопросов, или вы видимо просто гуру имеющий сертификат MTCINE решивший проверить нас на знания оборудования mikrotik. Я не хочу с вами спорить и с пеной у рта доказывать что к чему и для чего. Скриптинг в mikrotik очень легок в освоении, и если вы копипастите скрипт не вникая в его смысл, то как вы собираетесь что то делать для себя. Этот скрипт легко переделывается под любые нужды, имея простое даже представление о языке программировани я basic. Если вы сомневаетесь в моей компетенции это ваши личные проблемы, но тратить на вас время, видимо не благодарное дело. А уж бекапы делать, вы сами решайте, когда и для чего, и вообще нужны ли они вам :)
0 #13 dennz 17.12.2013 14:07
не влезло... Удачи вам, без бекапов...
И да, я тоже пожелаю вам стать гуру.
И вы на верном пути джедая, перезабивая настройки вручную - без бекапов скилл реально прокачивается, без иронии...
Правда, клиенты почему-то нервничают, а так ок )
0 #12 dennz 17.12.2013 14:06
зачетный холивар о пользе бекапов.
Неожиданная теория одного из уважаемых )
"1 раз все сделал и забыл"

RouterOS имеет версии итп, и не везде все хорошо, замечу свежим взглядом...
Глюки, слеты настроек... Я вот только сел осваиваться, 4 тикета в саппорте. ответы - "знаем, в следующей версии исправим"
0 #11 Дмитрий 17.12.2013 13:01
ну хоть кто-то по существу ответил. без выпадов по поводу моих знаний и нелепых объяснений про заземление. спасибо.
0 #10 mrbublik 17.12.2013 12:54
и еще ... сравнивать телевизор с роутером немного не корректно. Кстати когда у тебя есть еще списки меняющиеся раз в три дня точно, то резервный конфиг оч пригодится.
0 #9 Дмитрий 17.12.2013 12:52
Большое спасибо, приятно слышать от вас такое пожелание!

You have no rights to post comments