(Микротик Скрипт). Как установить кодировку "/ print" только для нужного столбца? - PullRequest
0 голосов
/ 28 мая 2019

Нам нужна информация от Router, что мои устройства уже активны. Иногда нам приходится пинговать (устройство macaddress), а не ip, потому что он динамический.

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

/print ip arp .......

Любое тело может помочь этим или, может быть, любым методом?

/print ip arp file=someip.txt 

/print ip arp (only column we want) file=someip.txt

Ответы [ 2 ]

1 голос
/ 17 июня 2019

Прежде всего, возможно, вы можете установить статический IP на то, что вы хотите. Если вы используете DHCP, вы можете добавить статическую аренду с /ip dhcp-server lease add .... И вам не нужно ничего писать в сценарии.

Mikrotik также имеет API (https://wiki.mikrotik.com/wiki/Manual:API) есть привязка для некоторых языков. Вы можете найти Mikrotik API .

Наконец, грязный хак, который прост и может быть достаточен для некоторых сценариев, состоит в том, чтобы подключить маршрутизатор по SSH и отфильтровать вывод с помощью вашей оболочки (если вы используете среду, подобную Unix)

ssh YOUR-DEVICE /ip arp print where mac-address=11:22:33:44:55:66 \
                | grep 11:22:33:44:55:66 | awk '{ print $3 }'

При этом ssh войдет в устройство и получит IP-адрес (столбец 3) устройства с mac 11:22:33:44:55:66.

Первая строка команды выполняется на Mikrotik, каналах с grep и awk в вашей среде unix со всей силой вашей оболочки.

Если вы скопируете свой SSH-ключ на устройство, команде не потребуется пароль.

0 голосов
/ 23 июня 2019

Я предлагаю извлечь параметр в решение @bmiro и сложить grep в awk

macId=11:22:33:44:55:66
ssh YOUR-DEVICE /ip arp print where mac-address=${macId} | awk "/${macId}/"'{ print $3 }'
...