Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • Changelogs
  • 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
    Как установить ширину терминала ssh?

    Как установить ширину терминала ssh?

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Как установить ширину терминала ssh?, RouterOS
     
    Zugschlus
    Guest
    #1
    0
    19.01.2009 13:46:00
    У меня RouterOS 3.17, и я хотел бы иметь возможность выполнять команду “/ip hotspot user print” через ssh с аутентификацией по ключу. Это работает отлично: $ ssh admin@microtik "/ip hotspot user print"
    Флаги: X - отключен, D - динамический
    #   СЕРВЕР           ИМЯ         АДРЕС         ПРОФИЛЬ         ВРЕМЯ УПРАВЛЕНИЯ
    0                    tester                       211WLANhot      58м9с
    1                    usrWLAN-A...                 211WLANhot      0с Проблема возникает, когда имя пользователя длиннее. Вывод имени пользователя тогда обрезается, что делает его бесполезным для меня. Когда я выполняю ту же команду из достаточно широкого терминала в интерактивной сессии: $ ssh admin@microtik
    [баннер microtik опущен]
    [admin@microtik] > /ip hotspot user print
    Флаги: X - отключен, D - динамический
    #   СЕРВЕР                               ИМЯ                             АДРЕС         ПРОФИЛЬ                             ВРЕМЯ УПРАВЛЕНИЯ
    0                                        tester                                           211WLANhot                          58м9с
    1                                        usrWLAN-A-HPuA                                   211WLANhot                          0с имя пользователя не обрезается. Как я могу получить полный вывод из неинтерактивной сессии? Буду благодарен за любые подсказки. Привет, Марк.
     
     
     
    Jacen
    Guest
    #2
    0
    12.05.2009 08:15:00
    Привет, у меня такая же проблема, только ни один из вариантов печати не кажется полезным. Я пытаюсь распечатать таблицу беспроводной регистрации, но данные, которые для меня самые важные, время безотказной работы, обрываются. Есть ли способ это предотвратить? С уважением, Джейсон
     
     
     
    normis
    Guest
    #3
    0
    12.05.2009 09:16:00
    Существует много вариантов команды print, просто введите print и "?": [admin@router] /interface wireless> print
    Печать значений свойств элементов в разных форматах.

    advanced -- Показать подмножество свойств в детализированном виде
    append --
    as-value --
    basic -- Показать подмножество свойств в детализированном виде
    count-only --
    detail -- Отображает подробную информацию
    file -- Печать содержимого подпункта в конкретный файл
    follow --
    follow-only --
    from -- Название или номер интерфейса, полученные из команды print
    interval -- Отображает информацию и обновляет её с заданным временным интервалом
    oid -- печать идентификаторов объектов для протокола SNMP
    terse -- Показать детали в компактном и удобном для машин формате
    value-list -- Показать свойства по одному в строке
    where --
    without-paging -- Отображает информацию целиком
     
     
     
    GeneralMarmite
    Guest
    #4
    0
    07.12.2024 16:10:00
    Я понимаю, что это сообщение 15-летней давности, но оно первое по запросу о том, как установить ширину терминала ssh, и в нем на самом деле не дается ответ на вопрос. Позвольте объяснить, в чем проблема, и привести пример данных, чтобы вы могли увидеть, в чем дело. На хосте BSD в моей сети я выполнил команду sudo hostname this-is-a-really-long-hostname-because-i-am-testing-something. На протяжении нескольких минут эта виртуальная машина считает, что у нее абсурдно длинное имя хоста. Затем на этой виртуалке я запускаю sudo service netif restart. Это приводит к тому, что хост повторно запрашивает свой DHCP-лизинг, отправляя это глупое имя хоста DHCP-серверу на моем маршрутизаторе. Теперь, как и у автора поста, я отправляю команды на свой Mikrotik (модель: RB4011iGS+, версия: r2, текущая прошивка: 7.10.1, routeros 7.14.3), авторизуясь с помощью SSH-ключа. Если я захожу интерактивно через SSH с терминального окна, которое широко на моем экране, я могу выполнить: /ip/dhcp-server/lease/print where address=“172.30.2.28” и вижу следующее: Flags: D - DYNAMIC
    Columns: ADDRESS, MAC-ADDRESS, HOST-NAME, SERVER
    #   ADDRESS      MAC-ADDRESS        HOST-NAME                                                      SERVER
    0 D 172.30.2.28  6E:15:09:09:26:56  this-is-a-really-long-hostname-because-i-am-testing-something  marmite ЭТО ТОТ ВЫВОД, КОТОРЫЙ Я ХОЧУ. Это хорошо. Все, что я хочу сделать, это получить этот точный вывод в неинтерактивном виде. Если я выполню /ip/dhcp-server/lease/print file=test.txt where address=“172.30.2.28” и затем посмотрю содержание test.txt, я увижу: # 2024-12-07 10:26:42 by RouterOS 7.14.3
    # software id = XXXX-XXXX
    #
    Flags: D - DYNAMIC
    Columns: ADDRESS, MAC-ADDRESS
     #   ADDRESS      MAC-ADDRESS      
    112 D 172.30.2.28  6E:15:09:09:26:56 Вся колонка HOST-NAME была опущена. Я предполагаю, что это связано с тем, что она слишком широка для той длины строки, которую использует команда print. Если это по какой-то другой причине, что мне нужно сделать, чтобы это изменить? Если я выполню ssh gw ‘/ip/dhcp/lease/print where address=“172.30.2.28”’ чтобы просто получить вывод ип-лизинга неинтерактивно (типо того, что можно было бы вставить в скрипт), я получаю тот же вывод: Flags: D - DYNAMIC
    Columns: ADDRESS, MAC-ADDRESS
    #   ADDRESS      MAC-ADDRESS      
    17 D 172.30.2.28  6E:15:09:09:26:56 Если я использую опцию brief, как предложено в этой теме, я все равно не получаю колонку HOST-NAME. Если я использую опцию detail, я получаю полное имя хоста, но теперь вывод в формате многострочного блока, который мне нужно разбить. Что я действительно хочу, так это IP-адрес и имя хоста и ничего больше. И мне не важна длина строки. На дворе 2024 год, и у меня нет никакого DEC VT100, который физически ограничивал бы количество букв на экране. Было бы классно, если бы это был JSON-формат, но я возьму текст, который не отбрасывает целые колонки. Документация по интерфейсу командной строки говорит, что ширина строки контролируется параметрами после имени пользователя. Это действительно необычно, но неважно. Приводится следующий пример: “ admin+c80w - отключит цвета консоли и установит ширину терминала в 80 ”. Итак, я пробую ssh marmite+c80w@gw и действительно, получаю интерактивную SSH-сессию, и цвет отключен, как я и ожидал. Тем не менее, мое фактическое окно терминала намного шире 80 символов, и когда я выполняю команду /ip/dhcp/lease/print, я получаю полную колонку имени хоста. Вывод значительно шире 80 символов. Таким образом, флаг ‘c’ для отключения цвета, похоже, работает, но часть 80w, похоже, не дает ожидаемого эффекта. Аналогично, выполнение ssh marmite+2000w@gw '/ip/dhcp/lease/print where address=“172.30.2.28”’ все равно дает мне вывод без колонки имени хоста, даже несмотря на то, что теоретически я сказал, что мне нравится ширина в 2000 символов. (Я также пробовал некоторые меньшие значения, такие как 110w и 130w). Так как же мне заставить команду /ip/dhcp/lease/print выводить действительно широкий вывод, когда я использую неинтерактивное SSH-соединение для ее выполнения?
     
     
     
    Amm0
    Guest
    #5
    0
    07.12.2024 20:46:00
    Ну, в текущей стабильной версии V7 поддержка JSON осуществляется через “:serialize”, что позволяет избежать сложностей с “termcap”. И это избавляет от необходимости использования схемы user+1000w, которая, кажется, должна была работать согласно документации. Чтобы получить аренду в формате JSON, это будет выглядеть так: /file/remove [find name=leases.json] /file/add name=leases.json contents=[:serialize to=json [/ip/dhcp/lease/print as-value] options=json.pretty]. Я упомянул /file/remove, так как /file/add не перезаписывает файл, а /file/set требует существующий файл. Также я думаю, что options=json.pretty доступен только в v7.16 и не является строго необходимым, просто использует переносы строк в JSON для улучшения читаемости при выводе на экран. И :serialize довольно новая команда, в более старых версиях V7 её вообще нет, она была добавлена примерно в 7.15 (по памяти). В 7.16 также доступно [:serialize to=dsv delimator= […]], чтобы получить CSV, что может быть полезно — но в этом есть ошибка (SUP-134773), связанная с тем, что вывод CSV не работает с “print”. Вы также можете попробовать добавить proplist=, чтобы управлять колонками. Не уверен, что это сработает, но легко попробовать.
     
     
     
    GeneralMarmite
    Guest
    #6
    0
    10.12.2024 01:28:00
    Очень полезно. Мы всё ещё не знаем, как контролировать ширину строки ssh. Но в моем случае это сработало: ssh marmite@gw "/ip/dhcp/lease/print proplist=\"address,host-name\"" Когда я ограничил вывод только этими двумя колонками, даже моё очень глупое имя хоста не было слишком длинным. Последнее, над чем мне остается посмеяться, — это заголовок вывода, который сообщает, что есть две колонки: address и host-name. Мне пришлось сделать мем об этом. Но серьезно. Спасибо. Я всё подготовил для того, что мне нужно. Надеюсь, кто-то другой извлечет пользу из этой беседы. Колонки: ADDRESS, HOST-NAME
     #   ADDRESS      HOST-NAME                                                    
    112 D 172.30.2.28  это-действительно-длинное-имя-хоста-потому-что-я-тестирую-что-то
     
     
     
    Amm0
    Guest
    #7
    0
    10.12.2024 02:49:00
    LOL. Сообщение об ошибке на support@mikrotik.com по поводу user+1000w, который не работает, могло бы быть более продуктивным - так как я довольно уверен, что с user+100w что-то не так, или, по крайней мере, он не делает ничего в быстром тесте, насколько я знаю.
     
     
     
    mrz
    Guest
    #8
    0
    12.05.2009 08:21:00
    try print detail or print stats
     
     
     
    Jacen
    Guest
    #9
    0
    12.05.2009 09:13:00
    аха! “print stats” работает. Это гораздо больше текста, но результат отличный. Просто на заметку, “print detail” не работает, вывод все еще усечен. спасибо!
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2025 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры