Jump to content
Калькуляторы

Экспорт конфигурации по расписанию

Пытаюсь настроить периодический экспорт конфы в файл, чтобы потом забирать по ftp.

Сделал скрипт:

add name=backup_rsc policy=reboot,read,write,policy,test,password,sniff,sensitive source=\

"# export configuration (text)\

\n/export file=conf.rsc;\

\n"

При запуске вручную через "/sys scr run <n>" всё отрабатывает, файл создаётся.

Сделал задание:

add interval=12h name=backup_rsc on-event=backup_rsc policy=reboot,read,write,policy,test,password,sniff,sensitive start-date=jan/01/1970 \

start-time=00:00:00

И получил станный результат.

Задание запускается:

# NAME START-DATE START-TIME INTERVAL ON-EVENT RUN-COUNT

0 backup_rsc jan/01/1970 00:00:00 1m backup_rsc 34

но файл не создаётся...

Пока не могу разобраться в чём проблема...

Может быть команду export нельзя использовать в заданиях?

Подскажите, люди добрые, где я что упустил.

 

Спасибо.

Share this post


Link to post
Share on other sites

Как вариант - поставьте на сервере subversion + rancid (в последних версиях есть поддержка mikrotik). Можно будет наглядно видеть изменения и будет возможность отката.

Share this post


Link to post
Share on other sites

У меня похожая ситуация помогите разобраться

Скрипт

 

add interval=5s name=schedule1 on-event="export file=([/system identity get name ] . \" \" . [/system clock get Date] . \" \" . [/system clock get Time].rsc) " policy=\

ftp,reboot,read,write,policy,test,winbox,password,sensitive,api start-date=jan/01/2014 start-time=18:31:44

 

В таком случае файл не создается

 

Если скрипт написать без . \" \" . [/system clock get Date] в виде

 

/system scheduler

add interval=5s name=schedule1 on-event="export file=([/system identity get name ] . \" \" . [/system clock get Time].rsc) " policy=\

ftp,reboot,read,write,policy,test,winbox,password,sensitive,api start-date=jan/01/2014 start-time=18:31:44

 

то файл создается. Помогите разобраться.

Edited by romis_war

Share this post


Link to post
Share on other sites

Как вариант - поставьте на сервере subversion + rancid (в последних версиях есть поддержка mikrotik). Можно будет наглядно видеть изменения и будет возможность отката.

а можете рассказать где можно взять success story для реализации этой связки?

Share this post


Link to post
Share on other sites

У меня похожая ситуация помогите разобраться

Скрипт

 

add interval=5s name=schedule1 on-event="export file=([/system identity get name ] . \" \" . [/system clock get Date] . \" \" . [/system clock get Time].rsc) " policy=\

ftp,reboot,read,write,policy,test,winbox,password,sensitive,api start-date=jan/01/2014 start-time=18:31:44

 

В таком случае файл не создается

 

Если скрипт написать без . \" \" . [/system clock get Date] в виде

 

/system scheduler

add interval=5s name=schedule1 on-event="export file=([/system identity get name ] . \" \" . [/system clock get Time].rsc) " policy=\

ftp,reboot,read,write,policy,test,winbox,password,sensitive,api start-date=jan/01/2014 start-time=18:31:44

 

то файл создается. Помогите разобраться.

Везёт... Тут хоть как-то создаётся, а у меня ни в какую. Я уже и слеш ставил/убирал, и длиной имени файла игрался.

Не получается файла, хоть убей.

Share this post


Link to post
Share on other sites

Как вариант - поставьте на сервере subversion + rancid (в последних версиях есть поддержка mikrotik). Можно будет наглядно видеть изменения и будет возможность отката.

а можете рассказать где можно взять success story для реализации этой связки?

https://www.google.ru/#newwindow=1&q=rancid+subversion

Share this post


Link to post
Share on other sites

Как вариант - поставьте на сервере subversion + rancid (в последних версиях есть поддержка mikrotik). Можно будет наглядно видеть изменения и будет возможность отката.

Что-то сразу жёсткие варианты предлагаете в качестве решения.

Нет, спасибо, конечно. Идея замечательная, но я пока не готов к развёртыванию rancid. Оставлю на потом.

Share this post


Link to post
Share on other sites

Самостоятельно нашёл решение проблемы.

Загвоздка была в параметре policy у задания и у скрипта.

У меня было "reboot,read,write,policy,test,password,sniff,sensitive".

После изменения на "ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api" всё заработало.

 

Вот такие подводные камни...

Share this post


Link to post
Share on other sites

Может пригодится у меня создается только осталось отправить на почту.

:log info "Starting Backup Script...";

:local sysname [/system identity get name];

:local sysdate [/system clock get date];

:local systime [/system clock get time];

:local sysver [/system package get system version];

:log info "Flushing DNS cache...";

/ip dns cache flush

/export file=([$sysname]. "-". [:pick [$sysdate] 7 11]."-" .[:pick [$sysdate] 0 3 ]."-".\

[:pick [$sysdate] 4 6]."_".[:pick [$systime] 0 2].":".[:pick [$systime] 3 6]."-v".[:pick [$sysver] 0 6]);

Share this post


Link to post
Share on other sites

Может пригодится у меня создается только осталось отправить на почту.

 

Простите, а к чему весь сыр бор? Отправит вам на почту конфигурацию 1000 устройств, когда потребуются данные, каким образом искать будете? Решение задачи сбора конфигураций подобным образом не позволяет их обрабатывать.

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

Время они откуда брать будут? Так же есть ситуация, что конфиг устройства вообще никогда не меняется, а за месяц оно скинет 30 конфигов, да и называться они будут не по IP адресу, а по имени, которое введено на оборудовании=) то есть попробовать найти что-то нужное будет невозможно.

 

В таких случаях нужно определять что является идентификатором оборудования и идентификатором конфига. Это может быть IP адрес и серийный номер устройства. Если один раз опросили, то поместили все в базу, на второй день опроса смотрите, если в базе все уже есть то не надо второй раз конфиг сохранять, если поменялся IP или серийник, то значит либо был перенос устройства, либо его замена. Так же бывают изменения самого конфига, что тоже нужно отслеживать. Тут с базой на все оборудование это порой сложно делать, когда большая история изменений, а с просто файлами на фтп вообще будет не возможно систематизировать.

Share this post


Link to post
Share on other sites

Saab95

ну смотря есть ли время заморачиваться с бэкапами.

 

Время они откуда брать будут?

банально брать с текущего времени на микротике

Меня вполне устраивает если в имени присутствует как раз-таки не айпи, а идентити, которое в свою очередь прописано в билинге)

но опять таки, понятно, что это всё на скорую руку для реализации нормальной системы нужно время

Share this post


Link to post
Share on other sites

банально брать с текущего времени на микротике

Меня вполне устраивает если в имени присутствует как раз-таки не айпи, а идентити, которое в свою очередь прописано в билинге)

но опять таки, понятно, что это всё на скорую руку для реализации нормальной системы нужно время

 

Да, но время там может быть не точно, например перезагрузился а с NTP сервером не связался и т.п.

 

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

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

Share this post


Link to post
Share on other sites

Привет всем,

Вопрос можно ли часть настройку сохранить rsc? Например изменение в firewall filter, route rule, queue simple.

И сделать их единое backup и отправить в ftp сервер?

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

 

:local sysname [/system identity get name];

:local sysdate [/system clock get date];

:local systime [/system clock get time];

:local sysver [/system package get system version];

:log info "Flushing DNS cache...";

/ip dns cache flush

:log info "Make .rsc backup";

:local exportfile ("$sysname-" .\

[:pick [$sysdate] 7 11]."-" .[:pick [$sysdate] 0 3 ]."-".[:pick [

$sysdate] 4 6]."_".\

[:pick [$systime] 0 2].":".[:pick [$systime] 3 6]."-v".\

[:pick [$sysver] 0 6]);

/export file=$exportfile;

:log info "Deleting last Backups...";

:foreach i in=[/file find] do={:if ([:typeof [:find [/file get $i name] \

"$sysname-"]]!="nil") do={/file remove $i}};

:log info "Starting sending backup to ftp-server";

:local UpLink [/interface ethernet find mac-address=D4:CA:6D:93:1A:2E]

:if ($UpLink != "") do={\

tool fetch address="10.1.12.12" src-path="$exportfile.rsc"\

mode=ftp port=21 user="login" password="1234567890"\

upload=yes dst-path="$exportfile.rsc"

:log info "Finished to sending backup to ftp-server";

system backup load name="$exportfile.rsc"

:log info "Finished a send backup to ftp-server";

}

:log info "Sending Setup Script Compact file via E-mail...";

:local smtpserv [:resolve "213.180.204.38"];

:local Eaccount "mikrotikjon@yandex.ru";

/tool e-mail set address=$smtpserv;

/tool e-mail send to=$Eaccount start-tls=yes file=$exportfile\

subject=("$sysname Setup Script Backup (" . [/system clock get dat\

] .\

")") body=("$sysname Setup Script Compact file see in attachment\

.RouterOS \

version: $sysver nTime and Date stamp: " . [/system clock get time\

] . " \

" . [/system clock get date]);\

:log info "All System Backups emailed successfully.\nBackuping completed.";

Share this post


Link to post
Share on other sites

Привет всем,

Вопрос можно ли часть настройку сохранить rsc? Например изменение в firewall filter, route rule, queue simple.

И сделать их единое backup и отправить в ftp сервер?

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

 

:local sysname [/system identity get name];

:local sysdate [/system clock get date];

:local systime [/system clock get time];

:local sysver [/system package get system version];

:log info "Flushing DNS cache...";

/ip dns cache flush

:log info "Make .rsc backup";

:local exportfile ("$sysname-" .\

[:pick [$sysdate] 7 11]."-" .[:pick [$sysdate] 0 3 ]."-".[:pick [

$sysdate] 4 6]."_".\

[:pick [$systime] 0 2].":".[:pick [$systime] 3 6]."-v".\

[:pick [$sysver] 0 6]);

/export file=$exportfile;

:log info "Deleting last Backups...";

:foreach i in=[/file find] do={:if ([:typeof [:find [/file get $i name] \

"$sysname-"]]!="nil") do={/file remove $i}};

:log info "Starting sending backup to ftp-server";

:local UpLink [/interface ethernet find mac-address=D4:CA:6D:93:1A:2E]

:if ($UpLink != "") do={\

tool fetch address="10.1.12.12" src-path="$exportfile.rsc"\

mode=ftp port=21 user="login" password="1234567890"\

upload=yes dst-path="$exportfile.rsc"

:log info "Finished to sending backup to ftp-server";

system backup load name="$exportfile.rsc"

:log info "Finished a send backup to ftp-server";

}

:log info "Sending Setup Script Compact file via E-mail...";

:local smtpserv [:resolve "213.180.204.38"];

:local Eaccount "mikrotikjon@yandex.ru";

/tool e-mail set address=$smtpserv;

/tool e-mail send to=$Eaccount start-tls=yes file=$exportfile\

subject=("$sysname Setup Script Backup (" . [/system clock get dat\

] .\

")") body=("$sysname Setup Script Compact file see in attachment\

.RouterOS \

version: $sysver nTime and Date stamp: " . [/system clock get time\

] . " \

" . [/system clock get date]);\

:log info "All System Backups emailed successfully.\nBackuping completed.";

 

 

Не ужели не кто не сталкивался с такими проблемами?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this