Jump to content

Recommended Posts

Posted

Есть ли, у кого то опыт синхронизации адрес листов в ROuterOS ?

Например, есть одна машина с ROS, надо раз в 5 минут передавать с нее адрес-листы на другую машину с ROS.

Подскажите, как реализовать ?

Posted

Экспорт в files, другой микротик скачивает файл с ftp первого и делает импорт не пойдет?

Листы будут только добавляться, в экспорт файле это выглядит как

add address=10.50.17.196 comment="cid=357;rule_id=54;" disabled=no list=\ 5_Mbit/sec

.

Если с первого сервера лист убрали, на втором он останется, а нужно чтобы он удалился.

Posted

Пример синхронизации из биллинга в Микротик:

программа - http://sources.homelink.ru/mikrotik/mikrotik_ctl.txt

настройки - http://sources.homelink.ru/mikrotik/mikrotik.conf.txt

 

После минимальной доработки сможет синхронизировать с одного Микротика на другой.

  • 3 years later...
Posted (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 by sherwood
Posted

по ссш\телнетом скормите через expect

Зачем такие сложности? Спокойно по ftp все передается и запускается. НО, это касается всего exportа. А теперь покажите команду export определенного адрес-листа, если их много?

Posted

для меня скрипты на микротике - мазохизм.

Для API нужно стороннее устройство (например ПК), хотелось бы обойтись только двумя микротиками.

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.