Перейти к содержимому
Калькуляторы

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

Пытаюсь настроить периодический экспорт конфы в файл, чтобы потом забирать по 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 нельзя использовать в заданиях?

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

 

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Скрипт

 

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

 

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

Изменено пользователем romis_war

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Скрипт

 

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

 

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

: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]);

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Saab95

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

 

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

 

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Привет всем,

Вопрос можно ли часть настройку сохранить 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.";

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Привет всем,

Вопрос можно ли часть настройку сохранить 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.";

 

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.