Как импортировать/экспортировать один скрипт ?

Описание каждой версии, обсуждение особенностей и недостатков
Ответить
Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Всем здравствуйте. Подскажите, возможно ли в Роутер-Ос экспортировать в файл только один скрипт из своего, например роутера, а не все ?
И потом восстановить его из этого файла на другом роутере ?
Ведь должно же такое быть.

А если хочется импортировать/экспортировать несколько выбранных скриптов ?


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
gmx
Модератор
Сообщения: 3295
Зарегистрирован: 01 окт 2012, 14:48

Да.

Делаете export всей конфигурации в терминале.
Выбираете то, что вам нужно перенести и эти сроки копируете в терминал на другом микротике.

Все.

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


Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

То есть экспорт идет всей конфигурации ? Или по крайней мере всех скриптов. А один или выборочно несколько - нельзя ? Плохо. Недоработка Микротик. Неудобно делать библиотеки скриптов.


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
mafijs
Сообщения: 536
Зарегистрирован: 03 сен 2017, 03:08
Откуда: Marienburga

Так можно export делат каждому разделу отдельно.
/system script> export


Аватара пользователя
podarok66
Модератор
Сообщения: 4358
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Если только в обход, типа там:

Код: Выделить всё

:put [/system script get [/system script find name=backup] source]


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Спасибо за последний пост !
Им и воспользовался. Вот такой скрипт позволяет загнать текст скрипта в переменную, а потом в файл:

:local ScriptName "FuncPoe";
:local Sscript;
:set Sscript [/system script get [/system script find name="$ScriptName"] source];
:log info $Sscript;

/file print file=("script_"."$ScriptName");
:set ScriptName ("script_"."$ScriptName".".txt");
/file set $ScriptName contents="$Sscript";

Но !, может кто знает - первый раз запускаю скрипт - в файл попадает какая-то пурга. Второй раз запускаю (файл первый не стираю) - он замещается файлом с нормальным текстом скрипта.
Почему так ? Что не правильно делаю ? Может сначала нужно записать в файл пустоту какую-нибудь, например один пробел, а потом текст скрипта ?


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Сам докопался. Дело было в задержке между созданием файла и его записью. Надо было сделать небольшую паузу Вот так:

:local ScriptName "FuncPoe";
:local Sscript;
:set Sscript [/system script get [/system script find name="$ScriptName"] source];
:log info $Sscript;

/file print file=("script_"."$ScriptName");
:delay 1s;
:set ScriptName ("script_"."$ScriptName".".txt");
/file set $ScriptName contents="$Sscript";

Еще вопрос в тему, если можно. Не могу создать папку, пользуясь известными инструкциями, в том числе примером, взятым из этого форума.
Делаю примерно так:

:global mkdir do={
:put $folder;
/file print file=temp;
:delay 2s;
/tool fetch address=127.0.0.1 port=port mode=ftp user="user" password="password" src-path=temp.txt dst-path=($folder"."/temp.txt");
:delay 2s;
/file remove temp.txt;
/file remove ($folder."/temp.txt");
}


[$mkdir folder="Newfolder"];

Файл temp создается, а дальше ни гу-гу. Сервис FTP открыт, все параметры задаются правильно. Из других скриптов сервис FTP работает. Что не так ?
Все останавливаетя на fetch. Файл temp не удаляется.


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Все же задержка вероятно не главное. Переодически, особенно на больших скриптах в текстовый файл импортируется не текст скрипта, а какая-то чушь типа версии роутер.ос и прочее.
Вот примерно такое:
# oct/11/2017 22: 9:43 by RouterOS 6.37.3
# software id = M91S-675M
#
# NAME TYPE итд bla.bla ....

Может глюки версии ?


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

В итоге пока получилась вот такая штука, которая позволяет экспортировать скрипт с заданным именем из репозитория скриптов в текстовый файл.
Очень удобно, т.к. позволяет "выуживать" скрипты с русскоязычными комментариями не портя их, чего не может роутер-ос при переносе копированием.
Вот если бы только избавиться от вышеупомянутого глюка, можно было бы сделать цикл "для каждого" и все скрипты с Микротика перенести разом в один файл.
Может кто подскажет в чем проблема ?

:local ScriptName "Имя скрипта из Вашего репозитория скриптов";
:local Sscript;
:set Sscript ("\n". "# script_"."$ScriptName"." $[/system clock get date]". " $[/system clock get time]". "\n"."\r"."\n"."\r"."\n"."$[/system script get [/system script find name="$ScriptName"] source]");
:log info $Sscript;
:delay 2s;
/file print file=("script_"."$ScriptName");
:delay 2s;
:set ScriptName ("script_"."$ScriptName".".txt");
/file set $ScriptName contents="$Sscript";
:delay 2s;
:log warning ("Скрипт записан в файл "."$ScriptName");


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Ответить