Простое резервное копирование RouterOS

Я знаю есть множество средств резервного копирования, но все они либо сложные в освоении, либо требующие знания linux и т.п.д.

Pupirka (Пупырка)

Кроссплатформенная утилита для резервного копирования RouterOS по SSH.

Установка

Скопируйте исполняемый файл для вашей ОС в любую папку, и запустите один раз.

Программа автоматически создаст конфигурационный файл pupirka.config.json и необходимые директории для своей работы.

Всё, можно приступать к добавлению маршрутизаторов.

Добавление маршрутизатора

В директории device создайте файл с именем вашего маршрутизатора и расширением .json например (mymikrotik.json)

Внутри файла соблюдайте формат json. Используйте для примера:

{
  "address": "172.20.17.1",
  "username": "pupirka",
  "password": "pupirkad9wh3doijwfkj"
}

address - IP адрес или доменное имя вашего маршрутизатора.

username - Имя пользователя под которым будет подключаться пользователь для резервной копии.

Password - Пароль для аутентификации. (можно вместо пароля использовать закрытый ключ)

Дополнительные поля

Если для подключения по ssh используется не стандартный порт, то вы можете его указать в параметре portssh.

Если маршрутизатор находиться очень далеко или находится под большой нагрузкой это может приводить к большой задержке при подключении, вы можете указать время задержки в ключе timeout, по умолчанию используется значение 10 секунд.

По умолчанию резервная копия делается только в том случае если последняя резервная копия старше 3600 секунд (1 час), вы можете изменить это значение указав количество секунд в параметре every.

По умолчанию резервные копии хранятся 730 дней, резервные копии старше будут автоматически удаляться, вы можете изменить длительность хранения указав в параметре rotate количество дней.

По умолчанию для создания резервной копии выполняется команда /export вы можете выполнить любую произвольную команду, таким образом, делать резервную копию только необходимого раздела.

Все поля в одном конфигурационном фале заполнены по умолчанию, кроме трёх обязательных полей address,username,password.

{
  "address": "172.20.17.1",
  "username": "pupirka",
  "password": "pupirkad9wh3doijwfkj",
  "portssh":22,
  "timeout":10,
  "every":3600,
  "rotate":730,
  "command":"/export"
}

Хранение резервных копий

В папке backup будут созданы папки для каждого маршрутизатора, имя папок будут совпадать с именами файлов маршрутизаторов без расширения.

Имя файла резервной копии записываеться в следующем формате ГГММДДТЧЧММ.rsc например (20200902T1212.rsc)

Резервные копии не будет удаляться если количество резервных копии меньше пяти.

Запуск

Я не стал, погружать вас в дебри установки служб, во всяком случае пока нет такого желания. Вы можете просто либо руками запускать, либо положить в планировщик задание которе будет запускать исполняемый файл по расписанию.

pupirka.config.json

Если вы хотите более тонко настроить пупырку, вы можете отредактировать конфигурационный файл.

{
  "devicedefault": {
    "command": "/export",
    "every": 3600,
    "portshh": 22,
    "rotate": 730,
    "timeout": 10,
    "key": "global"
  },
  "log": {
    "format": "text",
    "maxday": 1
  },
  "path": {
    "backup": "./backup",
    "devices": "./device",
    "log": "./log",
    "keys": "./keys"
  },
  "process": {
    "max": 10
  }
}

devicedefault - раздел со значениями по умолчанию.

path - папки для хранения резервных копий и устройств.

Авторизация по ключам

Обязательно уберите из json файла устройства параметр password и добавьте параметр key указав файл закрытого ключа в директории keys, если параметр не указан будет использован глобальный devicedefault > key

Авторизация по уникальному ключу пример:

{
  "address": "172.20.17.1",
  "username": "pupirkauniq",
  "key":"uniq" //key finding in ./keys/uniq
}

Авторизация с помощью глобального ключа

{
  "address": "172.20.17.1",
  "username": "pupirkaglobal"
}

Параллельное выполнение нескольких заданий

По умолчанию количество одновременно выполняемых процессов равно 10, вы можете изменить количество в разделе proccess и параметр max.

Пообщаться со мной https://t.me/vasilevkirill и запросить новые фичи, а также сообщить о багах вы можете на старице GitHub, а также в telegram группа https://t.me/mikrotikme

Скачать последню версию https://github.com/vasilevkirill/pupirka/releases


V.0.4

Добавлен функционал parent, укажите имя устройства через которое необходимо выполнить подключение к конечному устройству в параметре parent.

{
  "address": "172.30.10.10",
  "username": "admin",
  "parent": "router-10"
}

Родитель естественно должен существовать.

На родителе должен быть включен локальный форвард SSH, если это RouterOS выполните команду /ip ssh set forwarding-enabled=local

Рассказать друзьям

Чатик телеграм

@mikrotikme