Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • 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
    Функция для проверки существования процесса

    Функция для проверки существования процесса

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Функция для проверки существования процесса, RouterOS
     
    aea9tthompson
    Guest
    #1
    0
    14.01.2009 20:14:00
    Привет, я пытаюсь написать функцию, которая принимает один параметр (имя процесса) и использует HOST MIB, чтобы проверить, существует ли процесс на текущем устройстве, с которого вызывается функция, через SNMP. Вот что я использую для проверки: if(array_find(oid_column(“1.3.6.1.2.1.25.4.2.1.2”),“wuauclt.exe”)>-1, -1, 0). В качестве проверки это работает довольно хорошо, но иногда возвращаются неверные результаты, и создаётся впечатление, что проверка не работает, почти как будто Dude не может получить SNMP HOST mib с целевого устройства. Как мне создать функцию, которая принимает параметр, и как использовать этот параметр внутри функции? Спасибо, Том
     
     
     
    pjulian
    Guest
    #2
    0
    31.01.2009 08:46:00
    Хорошо, я понимаю, что ты говоришь, но как я могу использовать string_substring с array_find? Вот что работает: array_find(oid_column(“iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageDescr”, 600),“C:\ Label: Serial Number 18727cdf”). Но мне нужно, чтобы он искал только “C”, а не целиком всю информацию с серийным номером и прочим, потому что это меняется на каждом диске. Это должно выглядеть так: array_find(oid_column(“iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageDescr”, 600),“C”). Или что-то похожее с использованием string_substring. Я пробовал всякие способы, чтобы внедрить string_substring, но array_find будет сравнивать только целое значение, которое он находит, нельзя сравнивать лишь один или два символа, что именно мне и нужно для использования string_substring. С уважением, Пол.
     
     
     
    Toepfe
    Guest
    #3
    0
    02.02.2009 09:56:00
    Привет, я уже не уверен, что полностью понимаю, что ты хочешь сделать. Но если тебе нужно искать "C:" в строке OID, возможно, следующая строка поможет тебе: if(string_find(oid_column("1.3.6.1.2.1.25.2.3.1.3",600),"C:")<>4294967295, "ok", "not found") Пока!
     
     
     
    pjulian
    Guest
    #4
    0
    04.02.2009 11:50:00
    Это нормально, если я ищу строку в обычном значении OID или колонке, но мне нужно найти подстроку в колонке oid, которая является частью array_find, поэтому синтаксис совсем не верен. Мой предыдущий пример того, что работает, как раз то, что мне нужно… только он ищет всю строку, которая является значением OID, а мне нужно найти только одну часть этой строки в значении OID. С уважением, Пол
     
     
     
    Toepfe
    Guest
    #5
    0
    04.02.2009 14:41:00
    Привет, извиняюсь, если написал что-то глупое, но я действительно не вижу разницы в результате между строками array_find(oid_column("1.3.6.1.2.1.25.2.3.1.3",600),"C:\ Label: Serial Number 18727cdf") и string_find(oid_column("1.3.6.1.2.1.25.2.3.1.3",600),"C:\ Label: Serial Number 18727cdf"). В обоих случаях я получаю 0 (позицию). Единственное, что я заметил, это то, что array_find не работает в сочетании с "C:" (или частью "C:\ Label: Serial Number 18727cdf"). Мне также интересно, почему string_find всегда возвращает правильную позицию, независимо от того, искал ли я C:, D: или что-то другое. Если строка не найдена в oid_column, результат 4294967295. Но теперь, думаю, пора мне с этим завязывать. Пока!
     
     
     
    pjulian
    Guest
    #6
    0
    04.02.2009 21:46:00
    Пожалуйста, не пойми меня неправильно, я очень ценю твою помощь. Однако ты столкнулся с той же проблемой, что и я: я не могу найти способ связать команду string_substring с командой array_find и получить правильный результат. Тем не менее, ты использовал команду, о которой я ранее не знал, — string_find. Возможно, я смогу использовать эту команду с той частью строки, которую я ищу. Я попробую и сообщу тебе. С уважением, Пол.
     
     
     
    pjulian
    Guest
    #7
    0
    04.02.2009 21:55:00
    Я не могу заставить работать string_find, странно, какая версия The Dude у вас? Может, мне нужна самая последняя версия, чтобы этот string_find заработал? С уважением, Пол.
     
     
     
    pjulian
    Guest
    #8
    0
    04.02.2009 22:09:00
    Я установил 3.1, и string_find работает, в определенной мере, он возвращает число большее, чем фактический индекс, это связано с тем, что тип значения — октетная строка? Нужно ли что-то еще сделать с этим, ты знаешь? Когда я ищу A:\, что является первым значением, я получаю 0, когда ищу C:\, что является вторым значением, я получаю 5, когда ищу D:\, что является третьим значением, я получаю 41. С уважением, Пол.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2025 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры