Всем здравствуйте. Подскажите, возможно ли в Роутер-Ос экспортировать в файл только один скрипт из своего, например роутера, а не все ?
И потом восстановить его из этого файла на другом роутере ?
Ведь должно же такое быть.
А если хочется импортировать/экспортировать несколько выбранных скриптов ?
Как импортировать/экспортировать один скрипт ?
-
- Сообщения: 1616
- Зарегистрирован: 15 сен 2017, 09:03
-
- Модератор
- Сообщения: 3360
- Зарегистрирован: 01 окт 2012, 14:48
Да.
Делаете export всей конфигурации в терминале.
Выбираете то, что вам нужно перенести и эти сроки копируете в терминал на другом микротике.
Все.
Есть некоторые нюансы, которые зависят от аппаратных различий или, например, в вашем случае существующего скрипта с тем же именем на целевом микротике, но их надо конкретно рассматривать. В целом проблем нет.
Делаете export всей конфигурации в терминале.
Выбираете то, что вам нужно перенести и эти сроки копируете в терминал на другом микротике.
Все.
Есть некоторые нюансы, которые зависят от аппаратных различий или, например, в вашем случае существующего скрипта с тем же именем на целевом микротике, но их надо конкретно рассматривать. В целом проблем нет.
-
- Сообщения: 1616
- Зарегистрирован: 15 сен 2017, 09:03
То есть экспорт идет всей конфигурации ? Или по крайней мере всех скриптов. А один или выборочно несколько - нельзя ? Плохо. Недоработка Микротик. Неудобно делать библиотеки скриптов.
фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
viewtopic.php?f=14&t=13947
-
- Сообщения: 550
- Зарегистрирован: 03 сен 2017, 03:08
- Откуда: Marienburga
Так можно export делат каждому разделу отдельно.
/system script> export
/system script> export
- podarok66
- Модератор
- Сообщения: 4359
- Зарегистрирован: 11 фев 2012, 18:49
- Откуда: МО
Если только в обход, типа там:
Код: Выделить всё
:put [/system script get [/system script find name=backup] source]
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
-
- Сообщения: 1616
- Зарегистрирован: 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";
Но !, может кто знает - первый раз запускаю скрипт - в файл попадает какая-то пурга. Второй раз запускаю (файл первый не стираю) - он замещается файлом с нормальным текстом скрипта.
Почему так ? Что не правильно делаю ? Может сначала нужно записать в файл пустоту какую-нибудь, например один пробел, а потом текст скрипта ?
Им и воспользовался. Вот такой скрипт позволяет загнать текст скрипта в переменную, а потом в файл:
: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
viewtopic.php?f=14&t=13947
-
- Сообщения: 1616
- Зарегистрирован: 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 не удаляется.
: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
viewtopic.php?f=14&t=13947
-
- Сообщения: 1616
- Зарегистрирован: 15 сен 2017, 09:03
Все же задержка вероятно не главное. Переодически, особенно на больших скриптах в текстовый файл импортируется не текст скрипта, а какая-то чушь типа версии роутер.ос и прочее.
Вот примерно такое:
# oct/11/2017 22: 9:43 by RouterOS 6.37.3
# software id = M91S-675M
#
# NAME TYPE итд bla.bla ....
Может глюки версии ?
Вот примерно такое:
# 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
viewtopic.php?f=14&t=13947
-
- Сообщения: 1616
- Зарегистрирован: 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");
Очень удобно, т.к. позволяет "выуживать" скрипты с русскоязычными комментариями не портя их, чего не может роутер-ос при переносе копированием.
Вот если бы только избавиться от вышеупомянутого глюка, можно было бы сделать цикл "для каждого" и все скрипты с Микротика перенести разом в один файл.
Может кто подскажет в чем проблема ?
: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
viewtopic.php?f=14&t=13947