Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Форум
    RouterOS
    сохранить трассировку маршрута в файл

    сохранить трассировку маршрута в файл

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    сохранить трассировку маршрута в файл, RouterOS
     
    rmichael
    Guest
    #1
    0
    13.12.2010 22:30:00
    Есть ли способ вывести результат traceroute в файл, а не в терминал? Хочу, чтобы netwatch запускал traceroute каждый раз, когда задержка превышает xxx мс… Заранее спасибо!
     
     
     
    wifi442
    Guest
    #2
    0
    08.09.2011 21:02:00
    Мне нужно контролировать наше соединение, которое находится в дата-центре. В дата-центре установлен RB1100. Они просят присылать трассировки (traceroutes) каждый раз, когда задержка возрастает, чтобы можно было провести диагностику. Есть ли какой-то способ настроить netwatch, чтобы он запускал и сохранял трассировку, когда пинги начинают падать? Я всегда не рядом с компьютером, когда возникает проблема. Должен же быть какой-то вариант, правда?
     
     
     
    changeip
    Guest
    #3
    0
    01.11.2011 04:25:00
    Мне это тоже очень нужно...
     
     
     
    shdwmstff
    Guest
    #4
    0
    17.12.2015 15:16:00
    Ты уже нашёл способ сохранить вывод traceroute в файл? У меня похожая ситуация: вижу, что туннель GRE рвётся, и хочу понять, на каком этапе в traceroute это происходит. Спасибо!
     
     
     
    mrz
    Guest
    #5
    0
    17.12.2015 15:21:00
    Ты всё ещё не можешь это сделать из консоли. Но данные трассировки можно получить через API.
     
     
     
    PaulsMT
    Guest
    #6
    0
    18.12.2015 08:13:00
    Вы также можете сохранить вывод консоли с помощью команды :execute. В этом примере вы получите вывод traceroute продолжительностью 5 секунд, сохранённый в файле TRACEROUTE.txt. :execute {/tool traceroute 8.8.8.8 duration=5} file=TRACEROUTE
     
     
     
    shdwmstff
    Guest
    #7
    0
    18.12.2015 17:29:00
    ПОЛНЫЙ ФАНТАСТИЧЕСКИЙ УСПЕХ!!! Работает на версии 6.33, но не на 6.29. Похоже, какая-то странная ошибка связана с версией… но это уже наводит меня на правильный путь. Интересно, получится ли добавить… у меня, но я не жалуюсь! Спасибо!
     
     
     
    shdwmstff
    Guest
    #8
    0
    18.12.2015 20:49:00
    Окей, у меня возникла проблема: удалённая линия периодически отваливается и вызывает потерю пакетов. Но к тому моменту, когда я добираюсь до устройства, никаких ошибок уже не видно, и точно определить, где именно происходит сбой, не получается. А, как всегда, провайдер кормит меня типичной фразой «У нас всё чисто, всё работает». Поэтому мне нужно было иметь возможность запустить трассировку именно в момент сбоя, чтобы понять, что падает.

    С трудом настроил роутер так, чтобы он автоматически выполнял нужный мне скрипт, решил поделиться этим с вами.

    Итак, это позволит запускать netwatch и сохранять результаты в текстовый лог-файл netwatch,.0.txt. Если netwatch фиксирует сбой, он запускает пинг до тестируемого IP (в параметрах стоит count=100, но вы можете изменить) и записывает результаты в ping-fail.txt. Кроме того, выполняется traceroute до устройства, результаты сохраняются в файл TRACEROUTE.txt.

    Чтобы всё заработало, нужна версия RouterOS 6.33 или выше — команда «:execute» доступна с версии 6.30.

    Делаем так, чтобы создать опцию логирования netwatch (лог будет сохраняться, дополняться и с отметками времени):  
    /system logging action add disk-file-count=100 disk-file-name=netwatch, name=netwatch target=disk  
    /system logging add action=netwatch topics=script,info  

    Далее создаём netwatch до 8.8.8.8, в поле «up script» вставляем:  
    log info “\rNW-8.8.8.8 up\r”;  

    В поле «down script» вставляем скрипт SCRIPT-PING-TRACE.  

    Создайте скрипт с именем SCRIPT-PING-TRACE (можно назвать как угодно, лишь бы совпадало), и вставьте туда:  
    log info “\rNW-8.8.8.8 down\r”;  
    :execute {/ping 8.8.8.8 count=100} file=ping-fail;  
    :execute {/tool traceroute 8.8.8.8 duration=5} file=TRACEROUTE  

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

    Надеюсь, это кому-то поможет, если столкнётесь с похожей проблемой.
     
     
     
    PaulsMT
    Guest
    #9
    0
    21.12.2015 07:55:00
    :execute — это новая функция, которую вы найдёте только начиная с RouterOS 6.30. Кстати, чтобы быть уверенным, что команда :execute не перезапишет файл вывода (если скрипт запускается несколько раз), добавьте в имя файла какой-нибудь динамический текст, например время из часов.  
    :execute {/tool traceroute 8.8.8.8 duration=5} file=([/system clock get time].“_”.“filename”)
     
     
     
    mvalsasna
    Guest
    #10
    0
    26.04.2017 14:45:00
    не работает в 6.33: создаёт пустой файл
     
     
     
    normis
    Guest
    #11
    0
    27.04.2017 07:08:00
    отлично работает в версии 6.38
     
     
     
    pkelly1603
    Guest
    #12
    0
    29.11.2018 19:47:00
    Команда ниже не работает в netwatch в версии 6.42.9. Это связано с изменениями в безопасности, из-за которых у netwatch ограничены права? Есть ли какой-то способ запустить traceroute из netwatch в актуальных версиях? :execute {/tool traceroute 8.8.8.8 duration=5} file=([/system clock get time].“_”.“filename”)
     
     
     
    Ehman
    Guest
    #13
    0
    28.02.2020 11:17:00
    Есть возможность добавить в этот текстовый файл отметки времени и даты после каждого запуска traceroute? Я хочу запустить этот скрипт, например, на 24 часа, чтобы точно выявить проблему в сети, поэтому планирую увеличить продолжительность с 5 до очень большого числа. Но мне нужны временные метки, ребята, я сам не знаю, как это добавить. Спасибо!
     
     
     
    user12
    Guest
    #14
    0
    28.02.2020 15:53:00
    Изначально у меня был такой скрипт. Создавал два файла: в одном показывались неудачные пинги, в другом — трассировки маршрута.  
    :log info “\rNW-8.8.8.8 down\r”;  
    :execute {/ping 8.8.8.8 count=10} file=ping-fail;  
    :execute {/tool traceroute 8.8.8.8 duration=5} file=TRACEROUTE  

    Очень хотел бы добавить время и дату к этим записям, но файлы нельзя дозаписать (в ROS такой опции нет).  
    Думал, можно сделать отдельный скрипт, который запускать после первого — чтобы добавить время в конец файла.  

    – Это работает, но подозреваю, что есть более правильный способ просто запускать трассировки и добавлять время в конце или в начале файла.  

    :local test [/file get TRACEROUTE contents]
    :local tSubject “$[/system identity get name] @ $[/system clock get date] $[/system clock get time]”
    :set test ($test . “$tSubject”)  
    /file set TRACEROUTE contents=$test
     
     
     
    nichky
    Guest
    #15
    0
    31.10.2022 00:34:00
    @PaulsMT, не мог бы ты немного подправить этот скрипт? Он создаёт файл, но у меня не получается вставить его в компьютер.
     
     
     
    rextended
    Guest
    #16
    0
    31.10.2022 08:58:00
    Потому что время содержит символы : , а компьютер не поддерживает такие имена файлов. Использовать дату и время напрямую в имени файла — очень плохая идея из-за символов / и :.
     
     
     
    nichky
    Guest
    #17
    0
    31.10.2022 09:02:00
    @rextended Меня совсем не волнует время и дата, всё, что я хочу от скрипта — это создать: filename1 filename2 filenamx. Есть какие-нибудь идеи?
     
     
     
    rextended
    Guest
    #18
    0
    31.10.2022 09:06:00
    :global simplercurrdatetimestr do={
       /system clock
       :local vdate [get date]
       :local vtime [get time]
       :local vdoff [:toarray "0,4,5,7,8,10"]
       :local MM    [:pick $vdate ($vdoff->2) ($vdoff->3)]
       :local M     [:tonum $MM]
       :if ($vdate ~ ".../../....") do={
           :set vdoff [:toarray "7,11,1,3,4,6"]
           :set M     ([:find "xxanebarprayunulugepctovecANEBARPRAYUNULUGEPCTOVEC" [:pick $vdate ($vdoff->2) ($vdoff->3)] -1] / 2)
           :if ($M>12) do={:set M ($M - 12)}
           :set MM    [:pick (100 + $M) 1 3]
       }
       :local yyyy  [:pick $vdate ($vdoff->0) ($vdoff->1)]
       :local dd    [:pick $vdate ($vdoff->4) ($vdoff->5)]
       :local HH    [:pick $vtime 0 2]
       :local mm    [:pick $vtime 3 5]
       :local ss    [:pick $vtime 6 8]

       :return "$yyyy-$MM-$dd $HH:$mm:$ss"
    }

    :execute "/tool traceroute 8.8.8.8 duration=5" file="$[$simplercurrdatetimestr]_traceroute"
    # не забывайте ждать 1 секунду плюс длительность traceroute перед выполнением следующих команд
    :delay 6s Создавать скрипт, который генерирует имя файла с суффиксом n, слишком сложно по сравнению с тем, как я написал. Это возможно, но каждый раз придется вести счётчик и проверять, что файл с таким именем ещё не существует и так далее.
     
     
     
    nichky
    Guest
    #19
    0
    31.10.2022 09:33:00
    Большое спасибо!
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры