使用ssh在Linux上安装Java
题
我要安装使用ssh多台计算机上的Java,所以我想编写一个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
按<大骨节病>控制骨节病> + <大骨节病> C 骨节病>当你完成录制按键。检查文件内容。像TAB某些键可能无法正常录制,但你仍然可以编辑一个文本编辑器文件。注意,向下滚动一个控制台上(例如读取来自more
输出时)可以典型地与所述空格键来完成。
像你已经使用rpm做可以SCP的这个文件。接着,管的击键的内容文件来安装程序的标准输入:
cat keystrokes | ./someinstaller
编辑:遗憾听到这个消息不起作用。也许你可以看看期待,这是一个Unix工具,设计这样的事情。我认为,在大多数的的GNU / Linux 的分布是包括在内。如果你熟悉Python你可能更 Pexpect的代替。
不隶属于 StackOverflow