Привет, мне нужно написать скрипт, который собирает данные с /interface/wireless/> scan “wlan1” и ежедневно отправляет их на определённую почту. Я уже почти всё решил, кроме одного момента: :local wirelesslist [scan $interface1 freeze-frame-interval=0:0:02]; проблема со сканом в том, что его нужно останавливать вручную нажатием клавиши Q. В скрипте скан, похоже, запускается беспрерывно, и я, по сути, застрял в бесконечном цикле. Есть ли способ выполнить скан один раз или как-то симитировать нажатие клавиши Q? Спасибо!
Помогите с получением данных сканирования /interface/wireless.
Помогите с получением данных сканирования /interface/wireless., RouterOS
19.08.2010 13:37:00
|
|
|
|
14.07.2016 01:57:00
Ты заметил функцию фонового сканирования?
|
|
|
|
20.04.2011 02:55:00
Вот одно из решений с использованием новой версии Tera Term, которую можно скачать здесь:
Имя файла: MikroTik_Wlan_Scan.ttl Скрипт для Tera Term (используйте версию 4.6x и новее) Автор: Bob Burley – 19 апреля 2011 Инициализация переменных deviceUsernamePrompt='Login:' devicePasswordPrompt='Password:' deviceUsername="admin" devicePassword="xxxxxxxx" commandPrompt='] >' deviceIPaddress="1.1.1.1" host=deviceIPaddress strconcat host ':23 /nossh /T=1' outputFilename='ScanList.txt' Регулярное выражение для сопоставления – всё ещё требует доработки Частота «2.4ghz-b» прописана жёстко и нуждается в изменениях для работы с другими диапазонами regexStr='^\w{1,5}\s{1,5}\h{2}:\h{2}:\h{2}:\h{2}:\h{2}:\h{2}\s.{1,12}\s2\.4ghz-b\s{3}\d{4}\s-\d{2}\s-\d{2,3}\s\d{2}' Подключение к устройству connect host wait deviceUsernamePrompt sendln deviceUsername wait devicePasswordPrompt sendln devicePassword wait CommandPrompt Удаляем предыдущий файл, если он есть, и вы не используете режим дополнения filesearch outputFilename if result filedelete outputFilename Открываем файл для вывода Последний параметр: 0 = перезаписать, 1 = добавить в конец файла fileopen outputFile 'ScanList.txt' 0 Записываем заголовки в файл Это делается вручную, так как эти строки появляются несколько раз во время сканирования filewriteln outputFile 'Flags: A - active, B - bss, P - privacy, R - routeros-network, N - nstreme' filewriteln outputFile ' ADDRESS SSID BAND FREQ SIG NF SNR RADIO-NAME' Командная строка появляется несколько раз в процессе сканирования, поэтому обнаружение конца вывода реализовано с помощью таймаута в 3 секунды timeout=3 Запускаем сканирование WLAN и работаем 5 секунд sendln '/interface wireless scan 0 duration=5' Очищаем буфер от введённой команды flushrecv Распознаём строки вывода, соответствующие регулярному выражению :loop1 waitregex regexStr outputLine=inputstr if result filewrite outputFile outputLine Проверяем таймаут if result=0 goto exit1 goto loop1 :exit1 fileclose outputFile sendln '/quit' В итоговом файле будут дубликаты, поэтому для обработки вывода потребуется дополнительное скриптование. |
|
|
|
Читают тему