def exec_command(self, command, bufsize=-1):
#print "Executing Command: "+command
chan = self._transport.open_session()
chan.exec_command(command)
stdin = chan.makefile('wb', bufsize)
stdout = chan.makefile('rb', bufsize)
stderr = chan.makefile_stderr('rb', bufsize)
return stdin, stdout, stderr
paramiko में कमांड निष्पादित करते समय, यह exec_command चलाते समय हमेशा सत्र को रीसेट करता है। मैं सूडो या सु निष्पादित करने में सक्षम होना चाहता हूं और जब भी मैं एक और exec_command चलाता हूं तब भी उन विशेषाधिकारों को प्राप्त करना चाहता हूं। एक और उदाहरण exec_command ("cd /") को करने का प्रयास करेगा और फिर exec_command को फिर से चलाएगा और यह रूट निर्देशिका में होगा। मुझे पता है कि आप exec_command ("cd /; ls -l") जैसे कुछ कर सकते हैं, लेकिन मुझे इसे अलग-अलग फ़ंक्शन कॉल में करने की आवश्यकता है।पैरामीको में एक सत्र में आप एकाधिक कमांड कैसे निष्पादित करते हैं? (पायथन)
पर कोड जोड़ना लेकिन यह समाधान सभी आदेश समाप्त होने से पहले पहले कमांड के आउटपुट को पढ़ने की अनुमति नहीं देता है। क्या मैं सही हू? –
यह काम नहीं करता है क्योंकि stdout.read() पूरी फ़ाइल को पढ़ता है। मतलब, यह प्रोग्राम को पढ़ता है जो टर्मिनल पर "टाइप किया गया" था। यह इरादा व्यवहार नहीं है। आप पूरे कार्यक्रम के बजाय केवल 'एलएस' के आउटपुट और' एलएस' के आउटपुट को कैसे पढ़ते हैं? –
मैं उपरोक्त दो टिप्पणियों के साथ हूं ... सभी आदेशों से पहले एक कमांड के आउटपुट को पढ़ने के लिए कोई तरीका समाप्त हो गया है? – dmranck