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

 

  • Олег

    Привет!
    файл появляется но 0Кб
    иногда пролетает и все нормально
    в чем может быть проблема
    вот лог сервака:
    (000012)13.10.2013 14:08:22 — (not logged in) (10.50.0.8)> 220 Привет
    (000012)13.10.2013 14:08:22 — (not logged in) (10.50.0.8)> USER mktk8
    (000012)13.10.2013 14:08:22 — (not logged in) (10.50.0.8)> 331 Password required for mktk8
    (000012)13.10.2013 14:08:22 — (not logged in) (10.50.0.8)> PASS **************
    (000012)13.10.2013 14:08:22 — mktk8 (10.50.0.8)> 230 Logged on
    (000012)13.10.2013 14:08:22 — mktk8 (10.50.0.8)> TYPE I
    (000012)13.10.2013 14:08:22 — mktk8 (10.50.0.8)> 200 Type set to I
    (000012)13.10.2013 14:08:22 — mktk8 (10.50.0.8)> PASV
    (000012)13.10.2013 14:08:22 — mktk8 (10.50.0.8)> 227 Entering Passive Mode (10,50,0,6,253,229)
    (000012)13.10.2013 14:09:25 — mktk8 (10.50.0.8)> PORT 10,50,0,8,170,111
    (000012)13.10.2013 14:09:25 — mktk8 (10.50.0.8)> 200 Port command successful
    (000012)13.10.2013 14:09:25 — mktk8 (10.50.0.8)> STOR 10-50-0-8-2013oct13.backup
    (000012)13.10.2013 14:09:25 — mktk8 (10.50.0.8)> 150 Opening data channel for file transfer.

  • andrey0003

    может быть проблема с Вашим FTP, проверьте на другом, например.
    Тем более что «иногда пролетает и все нормально».

  • Kirill Kroshkin

    Большое спасибо за скрипт!
    Кавычки только поправьте в скрипте.
    Так же не мешает добавить путь к директории внутри фтп сервера