23 октября, 2014

Mikrotik - автоматический бэкап на FTP или E-mail

Микротик - отличная штука, чего и говорить. Многие мои знакомые по моей рекомендации купили себе эти роутеры. Настройку их, конечно же, поручали мне, т.к. самое сложное, что они максимум видели до этого - это прошивка для роутеров ASUS "от энтузиастов" (к слову, тоже очень милая вещь, но сейчас не об этом), ну а по сравнению с ней процедура настройки микротика выглядит для таких людей каким-то диким колдунством. Некоторые из вышеуказанных знакомых так и пользуются роутером в том виде, в котором я им его настроил (либо просят внести какие-либо изменения меня, что я делаю удаленно), иные же пытаются вносить изменения в настройки и экспериментировать самостоятельно. Последнее весьма похвально, но иногда приводит к неприятным последствиям. Впрочем, даже если пользователь ничего не правит в настройках роутера, никто не защищен от ситуаций, из-за которых роутер может прийти в негодность (примеров можно придумать массу). Для минимизации возможных неприятных последствий я написал скрипт, который каждый день создает бэкап и заливает его на мой FTP-сервер.

Исходник скрипта на github



Первые четыре строки задают переменные, касающиеся того, что именно и как бэкапить:
saveUserDB - бэкапить ли базу User Manager'a
saveSysBackup - сохранять ли системный бэкап (аналогично тому, который создается по команде /system backup save в консоли)
encryptSysBackup - шифровать ли системный бэкап (поддерживается начиная с RouterOS 6.13)
saveRawExport - сохранять ли бэкап всей конфигурации в "читабельном" виде (.rsc-скрипт)

Следующие четыре строки описывают настройки для подключения к FTP и вряд ли нуждаются в комментировании.

По дополнительным просьбам сделал аналогичный скрипт, отсылающий бэкап на e-mail вместо заливки по FTP. Правда, ввиду ограничений RouterOS, каждый файл из бэкапа отправляется только отдельным письмом (т.е. получается до трех писем за один раз).

Исходник на github



Настройки аналогичны первому скрипту, разве что нужно задать в переменной mailTo адрес, на который будут отправляться бэкапы.
Если вы планируете использовать скрипт, отправляющий резервные копии на почту, обязательно сначала задайте настройки отправки почты (подробно можно почитать в Mikrotik Wiki)

После добавления скрипта (допустим, мы его назвали "backup-script"), необходимо добавить задание в планировщик:
/system scheduler add interval=1d name="Run backup" on-event=backup-script \
policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive start-date=jan/01/1970 start-time=01:00:00

3 комментария:

  1. В шестой версии RouterOS
    bad command name user-manager (line 22 column 9)
    Подскажите, как быть?

    ОтветитьУдалить
    Ответы
    1. Можно уточнить полный номер версии? В актуальной 6.33.1 скрипт выполняется без проблем, с версиями ниже, по-моему, чем 6.15, могут быть ошибки из-за несколько изменившегося синтаксиса.

      Решается либо правкой команды под старый синтаксис (сам я уже не вспомню, что там именно изменилось, и роутеров с такой старой версией у меня уже тоже не осталось), либо обновлением до актуальной версии :)

      Удалить
    2. Необходимо скачать и установить пакет User Manager. Это Extra Package
      https://wiki.mikrotik.com/wiki/User_Manager/Getting_started#Download

      Удалить