Главная Форум Wiki Почта Jabber Devel NIX-FILES
Материал из AltLUG Wiki
Перейти к: навигация, поиск

Scli

Оригинальная статья: pipitas. Перевод: seas.

Вот набор задач, ежедневно встающих перед многими из нас…. Устанавливаешь Laserjet драйвер для новенького принтера Lexmark, который прикупил твой босс, но не знаешь, пришел-ли он с установленным PostScript модулем или поддерживает только PCL? Вдруг нужно узнать, что светится на LCD дисплее на принтере в том конце холла, но слишком занят или лень сходить и посмотреть. Тебе опять звонит кто-то и надоедает: “Мой HP опять заклинило; я вытащил бумагу, но эта красная лампочка все равно постоянно мигает!”?

Содержание

Используйте scli.

scli – это инструмент для запуска “командного интерфейса SNMP”. Я очень часто использую эту малоизвестную консольную утилиту для самых разнообразных задач.

Обзор:

scli подсоединяется к любому, поддерживющему SNMP, сетевому узлу и позволяет интерактивно “просматривать” параметры, сохраненные в базе данных устройства (так называемом, ”MIB”, База Данных Управления устройством). Я, главным образом, использую эту утилиту для управления принтерами (поэтому и выбрал такие примеры), но scli может работать и со многими другими устройствами: мостами, маршрутизаторами, шлюзами, свичами, серверами и много еще чем. (Так-же имеется неинтерактивный режим для поддержки скриптов).

Для кого:

  • для тех, кто хочет узнать какие из принадлежащих им устройства видны в сети и что это за устройства (параметры)
  • дле тех, кто выполняет роль “удаленной службы поддержки” (на работе, для друзей, или просто дома)
  • для тех, кто просто интересуется возможностями SNMP и хочет узнать о доступных в сети устройствах
  • для тех, кто, можно сказать, знаком с “snmpwalk”, но не настолько, чтобы работать с ним не лазая постоянно в справку

Ссылки:

Детали для интересующихся:

scli не только предоставляет вам более дружественный интерфейс для запуска SNMP команд, чем тот-же snmpwalk, он так-же форматирует возвращаемый результат в более удобочитаемый вид. Вы можете запускать scli в интерактивном режими (после чего вам откроется его собственный интерпретатор и приглашение для ввода команд) или для запуска одной единственной команды, при этом возвращая результат в стандартный командный интерпретатор (что делает этот режим удобным для написания скриптов).

По умолчанию, scli возвращает обычное текстовое ASCII сообщение. Для получения результата в XML виде вы можете указать “–xml” ключ. (XML может быть полезен если вывод дальше будет обрабатываться другой программой, а не читаться человеком).

Предположим, сетевой узел, который вас интересует доступен по ip-адресу 192.168.23.45. Запускаем программу вводя

scli 192.168.23.45

поддерживающие SNMP-протокол, устройства, обычно по умолчанию поддерживают “public” в качестве их “community name”, и если scli не видит community name в командной строке – пытается использовать “public”.

Вы спросите, что значит это community name? По сути – это очень слабый метод авторизации; в общем – пароль, общий для всех пользователей, но сами пользователи даже не различаются по имени. Более того, SNMP версии 1 даже не шифрует community name при передаче по сети! Да, это очень плохой метод защиты для большинства устройств, но это то, как сейчас, в реальной жизни, устроен SNMP мир вокруг нас. (SNMP v2 и v4 уже лучше, но еще не так распространены в выпускаемых устройствах).

Если все-же ваше устройство не такое открытое и вам посчастливилось узнать кодовое слово (community name), используйте его как еще один аргумент в командной строке:

scli 192.168.23.45 "community-name"

При удачном подключении, scli покажет вам приглашение его внутреннего интерпретатора:

scli >

Он сейчас в интерактивном режиме. Наберите help, чтобы увидеть доступные команды. Или show system info для того, чтобы узнать кто производитель устройства, и как называется модель. Я уверен, вы быстро найдете и более интересные для себя запросы.

У scli имеется очень хороший встроеный командный auto-completion (используя клавишу [TAB]). Наберите show system [TAB] [TAB] чтобы получить список доступных подкоманд, отличных от “info” что мы уже использовали. Увидите возможные варианты: devices info mounts processes storage. Это значит show system storage – еще один возможный вариант команды. Попробуйте!

Конечно, вы можете использоват show system и так [не вводя ни одной из подкоманд]. Это заставит scli запустить все эти подкоманды разом и вернуть сумму всех результатов.

То-же работает и show [TAB] [TAB] или show. Запустите и увидите полную SNMP информацию для устройства с которым вы сейчас работаете.

Несколько подсказок, которые помогут вам освоиться с scli:

  • Нужно помнить, что наиболее важная команда в scli – это show scli command [TAB] [TAB].
  • Поначалу, наиболее используемой командой в scli, скорее всего, будет show scli command tree.
  • scli поставляется с очень хорошей документацией; обязательно посмотрите ее хотя-бы разок.
  • scli может возвращать результат в XML формате, если его запускать с параметром “–xml”.

scli доступен в Debian (stable, testing и unstable все содержат версию 0.2.12-2, тогда как experimental - 0.3.0-0.1). Если вы вдруг используете версию 0.3.0, не упустите возможность просканировать всю вашу сеть на наличие SNMP устройств. В интерактивном режиме (scli >), введите

run scli scan

Или запустите scli в командном режиме из shell, и введите:

scli -c ‘run scli scan ’

(адресом может быть что-то вроде 192.168.0.0/24 или 10.162.4.0/22). Эта команда сканирования одна из новых, появившихся в 0.3; она выведет список всех SNMP узлов, которые откликаются на кодовое слово (community name) “public”. Возможно, вы захотите закрыть эту дыру в безопасности…

scli написан профессором Juergen Schoenwaelder, одним из тех кто придумал SNMP протокол и написал RFC, описывающий его.

P.S.: Если вы все-же действительно хотите знать ответы на вопросы в начале – Ok, вот они:

Поддерживает-ли мой новый принтер PostScript?

kurt:~> scli 192.168.23.45 -c "show printer interpreters" | grep Description
Description: Lexmark PCL
Description: Lexmark PostScript
Description: Lexmark XL
Description: Lexmark PJL
Description: Lexmark Automatic Language Switching
Description: Lexmark NPAP

Таким образом, если видим “NPAP” — тогда и PostScript поддерживается. Будет просто напечатать на нем из CUPS…

Что сейчас светится на LCD дисплее на удаленном принтере?

kurt:~> scli 192.168.23.45 -c "show printer display"
PRINTER LINE TEXT
1 1 No Paper: Tray 4

Уууу, и вы еще спрашиваете почему эта штуковина не пашет с 2 часов…

Почему эта красная мигалка не прекращает мигать на том принтере?

kurt:~> scli 192.168.23.45 -c "show printer covers"
Printer: 1
Cover: 1
Description: Rear Door
Status: coverOpen
Printer: 1
Cover: 2
Description: Top Door
Status: coverClosed

Ну, это просто. Просто скажите тому чуваку “Закрой крышку сзади у принтера и будет тебе счастье.”

Источник — «http://wiki.altlug.ru/Scli»
Личные инструменты