ssh

2009-09-30 19 views
5

मैं ssh का उपयोग कर कई कंप्यूटरों पर जावा स्थापित करना चाहते हैं का उपयोग कर लिनक्स पर जावा स्थापित कर रहा है तो मैं एक bash स्क्रिप्ट (मोटे तौर पर) करना होगा लिखना चाहते हैं:ssh

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

समस्या यह है कि जावा स्थापना के दौरान नोटिस को "पढ़ने" की आवश्यकता है और अंत में "हां" टाइप करें। मैं यह कैसे करुं? क्या "उम्मीद" से कोई आसान तरीका है? और यदि मैं बैश स्क्रिप्ट में इसे फिट करने के लिए कैसे नहीं हूं?

बहुत बहुत शुक्रिया

उत्तर

1

उम्मीद (धन्यवाद 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 
1

यह पोस्ट देखें:

Need help: Automatically accept EULA with apt-get

+0

मैं लाल टोपी का उपयोग कर रहा है - केवल "यम स्थापित" और यह खुला जावा जो बेकार है स्थापित करता है – Guy

+0

जाहिर है वहाँ एक फ़ाइल आप कर सकते हैं बनाएं जब वर्तमान में ईयूएलए स्वीकृति को छोड़ दिया जाएगा - कोई फ़ाइल नहीं है - लेकिन इससे मदद मिल सकती है। – rajax

+0

जो मुझे चाहिए बस की तरह लगता है - इसे बनाने के तरीके पर कोई सुराग? – Guy

2

सबसे पहले, इस तरह की एक फाइल करने के लिए आवश्यक कीस्ट्रोक्स रिकॉर्ड:

cat > keystrokes 

Ctrl + सी जब आप ' रिकॉर्डिंग कीस्ट्रोक फिर से किया। फ़ाइल सामग्री की जांच करें। टीएबी जैसी कुछ चाबियां ठीक से रिकॉर्ड नहीं हो सकती हैं लेकिन आप अभी भी टेक्स्ट एडिटर के साथ फाइल को संपादित कर सकते हैं। ध्यान दें कि कंसोल पर स्क्रॉल करना (उदाहरण के लिए more से आउटपुट पढ़ने पर) आमतौर पर स्पेस बार के साथ किया जा सकता है।

आप इस फ़ाइल को स्कैन कर सकते हैं जैसे आप आरपीएम के साथ पहले से ही करते हैं। इसके बाद, पाइप कीस्ट्रोक्स की सामग्री के संस्थापक के मानक इनपुट फ़ाइल:

cat keystrokes | ./someinstaller 

संपादित करें: यह काम नहीं करता यह सुनकर दुख हुआ। शायद आप expect पर एक नज़र डालें, जो इस तरह की चीज के लिए डिज़ाइन किया गया एक यूनिक्स टूल है। मुझे लगता है कि यह अधिकांश gnu/linux वितरण में शामिल है। यदि आप अजगर से परिचित हैं तो आप इसके बजाय pexpect पसंद कर सकते हैं।

+0

यह लगभग काम करता है, लेकिन काफी नहीं। ऐसा लगता है कि मैन्युअल रूप से SPACEBAR दबाए जाने के बाद इनपुट सुनाई देता है। – Guy

+0

ने इसे भी आजमाया - काम नहीं करता है – Guy