Отправьте интерактивные команды зонирования на переключатель Brocade

У меня есть Brocade переключатель FC, на котором я хотел бы сделать некоторое зонирование. У меня есть файл типа "build" со слишком многими строками к вставке копии в нормальную интерактивную сессию, и у меня есть ssh, настроенный с предобщими ключами между переключателем и моим сервером управления Unix. Я не имею, ожидают и предпочел бы придерживаться прямого ssh и удара.

Я попытался отправить команды индивидуально, однако это перестало работать, потому что каждая команда ssh является отдельной сессией, и все незафиксированные команды сбрасываются, как только сессия отбрасывается.

Я попробовал это:

cat testbuildfile | ssh -tt user@switch

Это почти работает, в котором это выполняет все команды в моем файле типа "build", однако это оставляет меня с сессией на Brocade, который я не могу использовать, когда они закончены. У меня есть своя командная строка Brocade, но если я ввожу что-нибудь, она зависает, и я имею к ctrl-c для возвращения к моему серверу Unix.

Я знаю, что могу поместить команду фиксации в свой файл типа "build", но у меня был бы шанс проверить и проверить работу прежде, чем фиксировать его. Идеально, я хотел бы иметь его, выполняет мой командный файл и затем оставляют меня, вошел в сессию, которую это запустило, чтобы я проверил, и затем вручную фиксируйте команды. Я могу сделать это?

править: запущение скриптов на переключателях Brocade не возможно без поднятой оболочки, которая освободила бы гарантию.

5
задан 1 July 2014 в 05:03
1 ответ

Правильно - вы перехватили stdin в ssh-сессии и он больше не подключен к вашему терминалу. Если вы не добавите quit в поток команд, он повиснет.

Попробуйте это волшебство вместо:

#!/bin/bash
host=blch1-sw3
session=$host.$$
CR="$(echo -e '\r')"

screen -d -m -S $session
screen -S $session -p 0 -X zombie kr
screen -S $session -p 0 -X hardstatus alwayslastline
screen -S $session -p 0 -X hardstatus string "$host config change 3.14159"
screen -S $session -p 0 -X stuff "exec ssh -l USERID $host$CR"
sleep 2
screen -S $session -p 0 -X stuff "PASSW0RD$CR"
sleep 5
screen -S $session -p 0 -X stuff "version$CR"
sleep 2
screen -S $session -p 0 -X stuff "# Changes complete - commit or abort$CR"
screen -x $session
3
ответ дан 3 December 2019 в 01:51

Теги

Похожие вопросы