niceone Posted December 9, 2011 Posted December 9, 2011 Есть ли, у кого то опыт синхронизации адрес листов в ROuterOS ? Например, есть одна машина с ROS, надо раз в 5 минут передавать с нее адрес-листы на другую машину с ROS. Подскажите, как реализовать ? Вставить ник Quote
Saab95 Posted December 9, 2011 Posted December 9, 2011 Экспорт в files, другой микротик скачивает файл с ftp первого и делает импорт не пойдет? Вставить ник Quote
niceone Posted December 10, 2011 Author Posted December 10, 2011 Экспорт в files, другой микротик скачивает файл с ftp первого и делает импорт не пойдет? Листы будут только добавляться, в экспорт файле это выглядит как add address=10.50.17.196 comment="cid=357;rule_id=54;" disabled=no list=\ 5_Mbit/sec . Если с первого сервера лист убрали, на втором он останется, а нужно чтобы он удалился. Вставить ник Quote
Ilya Evseev Posted December 11, 2011 Posted December 11, 2011 Пример синхронизации из биллинга в Микротик: программа - http://sources.homelink.ru/mikrotik/mikrotik_ctl.txt настройки - http://sources.homelink.ru/mikrotik/mikrotik.conf.txt После минимальной доработки сможет синхронизировать с одного Микротика на другой. Вставить ник Quote
sherwood Posted April 14, 2015 Posted April 14, 2015 (edited) Дабы не создавать новой темы. Задача синхронизировать отдельный адрес-лист. Если синхронизировать все, командой экпорт, то проблем нет. Но проблема в том, что команды export на отдельный адрес-лист нет (не знаю почему - микротик наверное). Поэтому создаем только файл с принт отдельного листа, в котором нет команды на запись этого листа. Передать этот файл на другую машину то же нет проблем. По этому нужен скрипт который переделает это файл в подходящий формат. Что удалось с делать с помощью подсказок и помощи на форумах, Скрипт который создает файл.txt с ip нужного адрес-листа, в столбик и передает его на удаленный микротик, после чего очищает этот файл. :global iplist; :foreach i in=[/ip firewall address-list find where list=list_negative] do={ :set iplist ($iplist . "\r\n" . [/ip firewall address-list get $i address])}; /file set [/file find name=list.txt] contents="$iplist"; delay 4; /tool fetch mode=ftp upload=yes address=192.168.0.10 port=21 user=login password=pass ascii=yes src-path=list.txt dst-path=list.txt delay 6; :set iplist; /file remove list.txt; /file print file=list.txt; delay 6; /file set list.txt contents="" Далее, шелудер на удаленной машине запускает скрипт который должен эти ip записать в адрес-лист, вот тут и проблема, не хочет писать, то есть после запуска скрипта адрес-листа нет. :if ( [/file get [/file find name=list.txt] size] > 0 ) do={ /ip firewall address-list remove [/ip firewall address-list find list=list_negative] :local content [/file get [/file find name=list.txt] contents] ; :local contentLen [ :len $content ] ; :put ( "=>" . $content . "<=" ) :local lineEnd 1 :local line "" :local lastEnd [ :tonum 1 ] :do { :set line [ :pick $content $lastEnd [ :find $content "\r\n" $lastEnd ] ] :set lineEnd [:find $content "\n" $lastEnd ] ; :put "lineEnd=$lineEnd< - lastEnd=$lastEnd - line=$line<" :if ( [ :len $content ] = 0 ) do={ :put "UNIX" :set line [ :pick $content $lastEnd [ :find $content "\r\n" $lastEnd ] ] :set lineEnd [:find $content "\n" $lastEnd ] ; } :set lastEnd ( $lineEnd + 1 ) ; :if ( [:pick $line 0 1] != "\n" ) do={ :put ">$line<" :if ( [:len $line ] > 0 ) do={ /ip firewall address-list add list=list_negative address=$line } } } while ($lineEnd < $contentLen) } В итоге лист передается, но не пишется на удаленной машине. Кто в скриптах селен, подмагните. Edited April 14, 2015 by sherwood Вставить ник Quote
GrandPr1de Posted April 14, 2015 Posted April 14, 2015 да по ссш\телнетом скормите через expect, или курите микротик апи. Вставить ник Quote
sherwood Posted April 14, 2015 Posted April 14, 2015 по ссш\телнетом скормите через expect Зачем такие сложности? Спокойно по ftp все передается и запускается. НО, это касается всего exportа. А теперь покажите команду export определенного адрес-листа, если их много? Вставить ник Quote
GrandPr1de Posted April 14, 2015 Posted April 14, 2015 для меня скрипты на микротике - мазохизм. тыц Вставить ник Quote
sherwood Posted April 14, 2015 Posted April 14, 2015 для меня скрипты на микротике - мазохизм. Для API нужно стороннее устройство (например ПК), хотелось бы обойтись только двумя микротиками. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.