Go to content Go to menu Go to search

Резервное копирование mikrotik

Задача

Нужно организовать резервное копирование настроек роутера mikrotik на внешний сервер. Для этого будем использовать встроенный скриптовый язык микротика. Напишем скрипт, который будет создавать файл бэкапа и заливать его на ftp сервер. Будем запускать скрипт встроенным в mikrotik шедулером.

Фишка нижеприведенных скриптов в используемом формате имен файлов. Дело в том, что в RouterOS дата представлена только в виде строки следующего формата: jul/08/2019, что не удобно для именования файлов. Имена файлов бэкапов у нас будут в следующем формате: System-Name_YYYY-MM-DD_HHMMSS например: New-FW1_2019-08-07_044211.backup. При таком формате файла сортировка по имени файла будет совпадать с сортировкой по дате.

итак:

Решение

вспомогательный cкрипт для преобразования даты и времени в нужный нам формат getFormattedDate:

:global mydatetime
:local time [/system clock get time]
:local date [/system clock get date]
:local month [:tostr ([:find \
    "janfebmaraprmayjunjulaugsepoctnovdec" [:pick $date 0 3] \
  ]/3+1)]
:if ([:tonum $month]<10) do={
    :set month "0$month"
  }
:set mydatetime ( \
    [:pick $date 7 11]."-".$month."-".[:pick $date 4 6]."_". \
    [:pick $time 0 2].[:pick $time 3 5].[:pick $time 6 8] \
  )
#  :put "Current date/time in YYYY-MM-DD_HHMMSS format is: $mydatetime"

скрипт резервного копирования backup_to_ftp:

:local ftpuser "mikrotik"
:local ftppassword "pass"
:local ftphost "192.168.1.254"

:global mydatetime
:system script run getFormattedDate
:local name value=[/system identity get name]
:local filename value=($name."_".$mydatetime.".backup")

system backup save name=$filename
export file=$filename;

tool fetch address=$ftphost user=$ftpuser password=$ftppassword mode=ftp src-path=    ($filename)           dst-path=($filename)  upload=yes;
tool fetch address=$ftphost user=$ftpuser password=$ftppassword mode=ftp src-path=($filename.".rsc") dst-path=($filename.".rsc")  upload=yes;

/file remove $filename
/file remove ($filename.".rsc")

добавляем в scheduler на mikrotik:

/system scheduler add interval=1d name=Backup on-event="/system script run backup_to_ftp" \
    policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
    start-date=jul/01/2019 start-time=05:10:00

ENJOY!


при публикации материалов с данного сайта обратная ссылка на сайт обязательна.
valynkin.ru © no rights reserved