Я хочу написать сценарий, который будет входить в несколько коммутаторов и проверять состояние нескольких портов. Я использую RHEL 4, и у меня есть коммутаторы HP ProCurve 3500yl. Я хочу запустить что-то вроде следующего:
ssh myhost -l myuser show interface A3
Но когда я это делаю, команда ssh просто зависает, пока я не нажму ctrl-c. В руководстве, кажется, думается, что я хочу проверить состояние переключателя через веб-интерфейс, поэтому я не могу найти подробных указаний по удаленному получению статуса. Есть ли способ сделать это по ssh? Есть ли другой способ, который был бы лучше, но с возможностью сценария?
Я не знаю насчет 3500yl, но на 2600 и 2800 удаленные команды ssh не поддерживаются. Запуск ssh с -v
(подробный) вариант дает следующее:
debug1: Sending command: show interface 26
debug1: Received SSH2_MSG_UNIMPLEMENTED for 8
Вы делаете это правильно [1] - я бы посоветовал открыть заявку в HP, чтобы исправить эту ошибку.
Вы можете использовать одно из них в качестве обходного пути:
ssh myuser@myhost show interface A3 < /dev/null
ssh myhost -l myuser $(echo -e 'show interface A3\nexit')
[1] т.е. работает на Cisco :)
Обычный метод проверки состояния коммутатора - использование SNMP. Я бы проверил, поддерживает ли ваш коммутатор SNMP (большинство управляемых коммутаторов должны) и предоставляет ли он нужную информацию через SNMP.
Если вы умеете программировать Perl, я бы рекомендовал посмотреть SNMP :: Информация модуль, чтобы упростить их поиск.
Это может быть из-за экрана приветствия HP.
Установить протухший, настройте и запустите ~ rancid / bin / hlogin -c "показать версию" switch1 switch2
(подтверждено HP 2626, подождите, он выйдет из системы)
Прогорклые камни. Если вы не используете его, начните сейчас.
Используйте команду Linux expect. Баннер HP остановит выполнение ваших команд ssh. Я с открытым исходным кодом ProCurve Commander для решения этой проблемы. Обратите внимание, что ту же стратегию можно использовать с любой системой, которая по какой-либо экзотерической причине не позволяет удаленный вызов команды ssh.