Mikrotik backup на FTP

logo_mikrotik_smallВвиду того что все и всегда должно бекапиться, задался вопросом бекапа конфигов роутеров от Mikrotik, то что получилось, приведено ниже. Бекап копируется на FTP, но помимо самого бекапа, создается и копируется также .rsc файл(текстовый формат конфигурационного файла). Бекап происходит раз в неделю, но можете настроить по своему усмотрению. Почему именно по FTP — а потому что у меня все конфиги с рутеров cisco уже сливалются на FTP и мне так удобно. Поискав в нете, наткнулся на всякие варианты, в том числе извращенные (по моему усмотрению), типа отправки бекапа на e-mail, и даже скрипт на питоне на забором бекапа с сервера. Нигде не было отправки на ftp и бекапа и конфига в текстовом формате — пришлось самому соорудить 🙂


Создайте скрипт в /system script
вот собственно скрипт:

log info "Starting Automatic Backup Script"
:global thisdate [/system clock get date]
:global datetimestring ([:pick $thisdate 0 3] ."-" . [:pick $thisdate 4 6] ."-" . [:pick $thisdate 7 11])
:global backupfilename ([/system identity get name]."_".$datetimestring."_1w")
:local ftpusername "имя_пользователя"
:local ftpuserpassword "пароль"
:local ftphostname "ftp_хост"

/system backup save name=»$backupfilename»
:delay 5s
/export compact file=»$backupfilename»
:log info «Please wait…!!!»
:delay 5s
:log info «Sending Backup Mikrotik to FTP Server………….»
/tool fetch address=»$ftphostname» src-path=»$backupfilename.backup» user=»$ftpusername» password=»$ftpuserpassword» port=21 upload=yes mode=ftp dst-path=»$backupfilename.backup»
:delay 1
/tool fetch address=»$ftphostname» src-path=»$backupfilename.rsc» user=»$ftpusername» password=»$ftpuserpassword» port=21 upload=yes mode=ftp dst-path=»$backupfilename.rsc»
:delay 1
/file remove «$backupfilename.backup»
/file remove «$backupfilename.rsc»
:log info «Finished Backup Script…!!!!»

назовем его ftpbackup и выставим нужные права — по умолчанию права — policy=read,write,policy,test,password,sensitive

поменяйте переменные на свои — ftpusername, ftpuserpassword и ftphostname в скрипте и поставьте в планировщик:

/system scheduler add disabled=no interval=1w name=scheduledbackup1w on-event=ftpbackup

параметр interval выставлен в одну неделю (1w).

можете проверить работу скрипта, выполнив:

/system script run ftpbackup

На FTP должно появиться два файла с текущей датой.

Удачи в настройках.
© shadow_alone

PS: В версии 6 RouterOS замечен баг, при запуске скрипта из терминала он все верно отрабатывает, а при запуске через winbox, веб-панель или из планировщика, скрипт затыкается на /export file=
Написал в support, ответили, обещали исправить в ближайших обновлениях.

support answer