2015-08-27 8 views
5

सारांश: मुड़ते हुए मैनहोल पर आदेश स्वचालित करने में असमर्थ। समाधान/सलाह की तलाशट्विस्टेड मैनहोल के साथ स्क्रिप्टिंग

ट्विस्टेड मैनहोल नामक कार्यक्षमता का एक बड़ा टुकड़ा है। यह उपयोगकर्ता को वर्तमान में चल रहे ट्विस्ट सर्वर पर ssh करने और अपने आंतरिक के साथ निरीक्षण/बातचीत करने की अनुमति देता है।

मैं इसके साथ कुछ स्क्रिप्टिंग करना चाहता हूं। बस मैनहोल से कनेक्ट हो रहा

ssh localhost -p 12345 

की आवश्यकता है और उसके बाद उपयोगकर्ता चल प्रक्रिया के उपयोग के साथ एक अजगर दुभाषिया में छोड़ा जाता है।

आमतौर पर एसएसएच के साथ रिमोट सर्वर पर एक कमांड चला सकता है और बाहर निकल सकता है, उदा।

ssh [email protected] 'ls' 

लॉगिन निर्देशिका पर 'ls' निष्पादित करेगा और फिर एसएसएच कनेक्शन बंद हो जाएगा।

मैं

ssh localhost -p 12345 'print "hello, world"' 

मैनहोल के लिए की तरह कुछ निष्पादित करना चाहते हैं, लेकिन इसके बजाय मैं (ssh के साथ शब्द) प्राप्त करते हैं:

debug1: Authentication succeeded (password). 
debug1: channel 0: new [client-session] 
debug1: Entering interactive session. 
debug1: Sending environment. 
debug1: Sending env LANG = en_US.UTF-8 
debug1: Sending command: print "Hello world" 
exec request failed on channel 0 

वैसे भी मैं मैनहोल पर कार्रवाई स्वचालित कर सकते हैं?

+0

क्या आपने 'echo' प्रिंट "हैलो वर्ल्ड" की कोशिश की है। एसएसएच लोकहोस्ट -पी 12345'? –

+0

परिणाम (वर्बोज़ डिबगिंग के लिए ssh -v का प्रयोग करके): 'जड़ @ स्थानीय होस्ट का पासवर्ड: debug1: प्रमाणीकरण सफल रहा (पासवर्ड)। डीबग 1: चैनल 0: नया [क्लाइंट-सत्र] डीबग 1: इंटरैक्टिव सत्र दर्ज करना। डीबग 1: पर्यावरण भेजना। debug1: भेजा जा रहा है env LANG = en_US.UTF-8 खोल अनुरोध चैनल पर विफल रही है 0' – ChaimKut

उत्तर

3

कारण है कि ssh localhost -p 12345 print 'Hello world' विफल रहता है कि "प्रिंट 'हैलो वर्ल्ड'" "कार्यकारी" अनुरोध है कि आदेश पर अमल माना जाता है के रूप में भेजा जाता है। आपका सर्वर (मैनहोल) उस (स्पष्ट रूप से) का समर्थन नहीं करता है।

आपको इसके बजाय पाइथन दुभाषिया मानक इनपुट फ़ीड करने की आवश्यकता है। उदाहरण के लिए:

ssh -tt localhost -p 12345 << EOS 
print "Hello world" 
EOS 

नोट -tt झंडा - यह परवाह किए बिना tty आवंटित करने के लिए अपने इनपुट डिवाइस tty नहीं है ssh बाध्य करती है। बिना आपको "चैनल पर खोल अनुरोध विफल" त्रुटि प्राप्त होगी।

संबंधित मुद्दे