Вопрос

Я хочу установить Java на многие компьютеры с помощью ssh, поэтому хочу написать сценарий bash, который подойдет (примерно):

for c in computers
do    
   scp jre--.rpm $c
   ssh $c 'sudu -s; chmod a+x jre--.rpm ; ./jre--.rpm; echo "success!"'
done

Проблема в том, что во время установки Java мне нужно «прочитать» уведомление и в конце ввести «да».Как мне это сделать?Есть ли более простой способ, чем «ожидать»?А если нет, то как мне вписать это в скрипт bash?

большое спасибо

Это было полезно?

Решение 2

ожидать - это правильный путь (спасибо http://www.dnmouse.org/java.html):

   for c in computers
   do    
       scp jre--.rpm $c
       ssh -t $c 'sudo -s; yum -y install expect; sudo chmod a+x jre--.rpm'
       ssh -t $c '/usr/bin/expect -c \
       "set timeout -1; spawn ./jre-6u13-linux-x64-rpm.bin; sleep 1; send -- q\r; sleep 1; send -- yes\r; expect eof"
       echo "success!"'
   done

Другие советы

Сначала запишите необходимые нажатия клавиш в файл вот так:

cat > keystrokes

Ударять Ctrl+С когда вы закончите записывать нажатия клавиш.Проверьте содержимое файла.Некоторые клавиши, такие как TAB, могут записываться неправильно, но вы все равно можете редактировать файл с помощью текстового редактора.Обратите внимание, что прокрутка вниз на консоли (например.при чтении вывода из more) обычно можно сделать с помощью клавиши пробела.

Вы можете просмотреть этот файл так же, как вы уже делали это с помощью rpm.Затем передайте содержимое файла нажатий клавиш на стандартный ввод установщика:

cat keystrokes | ./someinstaller

редактировать: Сожалеем, что это не работает.Может быть, вы сможете взглянуть на ожидать, инструмент Unix, предназначенный для подобных задач.Я думаю, что это включено в большинство ГНУ/Линукс распределения.Если вы знакомы с Python, вы можете предпочесть ожидать вместо.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top