воскресенье, 12 июня 2016 г.

Автоматический бекап и экспорт настроек Микротик на FTP.

  Скрипт для выгрузки бекапа и экспорта Mikrotik на ФТП ресурс (проверен на 6.35.2):

# automated backup export ftp
# ftp configuration
:local ftphost "host"
:local ftpuser "user"
:local ftppassword "pass"
:local ftppath "folder_ftp"
# months array
:local months ("jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec");
# get time
:local ts [/system clock get time]
:set ts ([:pick $ts 0 2].[:pick $ts 3 5].[:pick $ts 6 8])
# get Date
:local ds [/system clock get date]
# convert name of month to number
:local month [ :pick $ds 0 3 ];
:local mm ([ :find $months $month -1 ] + 1);
:if ($mm < 10) do={ :set mm ("0" . $mm); }
# set $ds to format YYYY-MM-DD
:set ds ([:pick $ds 7 11] . $mm . [:pick $ds 4 6])
# file name for system backup - file name will be Mikrotik-servername-date-time.backup
:local fname1 ("/Mikrotik-".[/system identity get name]."-".$ds."-".$ts.".backup")
# file name for config export - file name will be Mikrotik-servername-date-time.rsc
:local fname2 ("/Mikrotik-".[/system identity get name]."-".$ds."-".$ts.".rsc")
# backup the data
/system backup save name=$fname1
:log info message="System backup finished (1/2).";
/export compact file=$fname2
:log info message="Config export finished (2/2)."
# upload the user manager backup
:log info message="Uploading system backup (1/2)."
/tool fetch address="$ftphost" src-path=$fname1 user="$ftpuser" mode=ftp password="$ftppassword" dst-path="$ftppath/$fname1" upload=yes
# upload the config export
:log info message="Uploading config export (2/2)."
/tool fetch address="$ftphost" src-path=$fname2 user="$ftpuser" mode=ftp password="$ftppassword" dst-path="$ftppath/$fname2" upload=yes
# delay time to finish the upload - increase it if your backup file is big
:delay 30s;
# find file name start with Mikrotik- then remove
:foreach i in=[/file find] do={ :if ([:typeof [:find [/file get $i name] "Mikrotik-"]]!="nil") do={/file remove $i}; }
:log info message="Configuration backup finished.";

  Файлы имеют такой вид:

Подписаться на новые статьи.

15 комментариев:

  1. Спасибо. Работает. То, что нужно.

    ОтветитьУдалить
  2. Хороший скрипт, но будьте осторожны! Команда /system backup save name=$fname1 выгружает файл в зашифрованном виде. Пароль при восстановлении будет не подобрать.

    Поэтому либо так:
    /system backup save dont-encrypt=yes name=$fname1

    либо так:
    /system backup save name=$fname1 password=qwerty

    ОтветитьУдалить
    Ответы
    1. А разве не тот пароль будет, под пользователем которого создан скрипт?

      Удалить
  3. Добрый день!
    Подскажите, пытаюсь настроить, не выходит. Что именно необходимо указывать в :
    local ftphost "host"
    :local ftpuser "user"
    :local ftppassword "pass"
    :local ftppath "folder_ftp"
    Локальный фтп у меня на ххх.ххх.ххх.103:порт
    логин пользователя ФТП
    Пароль пользователя ФТП
    Папка для сохранения конфигов.

    Предполагаю, что моя проблемма именно в 1й и 4й строках.
    Как их верно указывать, нужно ли ftp://ip:port ?
    FTP при моих попытках ничего не говорит, мол не было попыток подключиться с данного логина.
    ХЕЛП ))

    ОтветитьУдалить
    Ответы
    1. Для прикладу :
      :local ftphost "192.168.x.x"
      :local ftpuser "FTP"
      :local ftppassword "FTP"
      :local ftppath "backups/Mikrotik"

      Удалить
  4. А если у меня парк из 200-400 микротиков?

    ОтветитьУдалить
    Ответы
    1. Значит, у Вас довольно интересная работа) Многие могут только мечтать о таком парке)

      Удалить
  5. Добрый день!
    Хороший скрипт.
    Спасибо. Работает. То, что нужно.

    ОтветитьУдалить
  6. Версия 6.45.6 - работает отлично. Спасибо вам большое. Особенно за указание пути сохранения на FTP.

    ОтветитьУдалить
  7. Еще вариант бекапа и авто обновлений
    https://github.com/beeyev/Mikrotik-RouterOS-automatic-backup-and-update

    ОтветитьУдалить
  8. Спасибо большое!

    ОтветитьУдалить
  9. пытаюсь запустить уже третий скрипт, не получается:(
    ругается на строку с :set
    версия 6.46.8
    что не так? подскажите плиз.

    ОтветитьУдалить
    Ответы
    1. :set ts ([:pick $ts 0 2].[:pick $ts 3 5].[:pick $ts 6 8])
      syntax error (line 1 column 6)

      Удалить
  10. Этот комментарий был удален автором.

    ОтветитьУдалить