मुझे पैरामीको का उपयोग करने से पहले ऐसा करना पड़ा, जहां मैं एक एसएसएच सर्वर चलाने वाले मेजबान पर एक गतिशील, स्थानीय पीईक्यूटी 4 स्क्रिप्ट चलाने के लिए चाहता था, जिसने मेरा ओपनवीपीएन सर्वर कनेक्ट किया है और अपनी रूटिंग वरीयता मांगना है (विभाजित सुरंग)।
तब तक जब तक आप जिस एसएसएच सर्वर से कनेक्ट हो रहे हैं, आपकी स्क्रिप्ट की सभी आवश्यक निर्भरताएं हैं (मेरे मामले में पीईक्यूटी 4), आप आसानी से बेस 64 में एन्कोडिंग करके डेटा को समाहित कर सकते हैं और exec()
अंतर्निहित फ़ंक्शन का उपयोग कर सकते हैं डीकोडेड संदेश। अगर मैं सही ढंग से याद इस के लिए मेरे एक लाइनर था:
stdout = client.exec_command('python -c "exec(\\"' + open('hello.py','r').read().encode('base64').strip('\n') + '\\".decode(\\"base64\\"))"')[1]
यह पढ़ने के लिए कठिन है और आप बच दृश्यों से बचने के लिए है क्योंकि वे दो बार (एक बार प्रेषक द्वारा फिर से रिसीवर द्वारा और उसके बाद) समझा जाता है। इसे कुछ डिबगिंग की भी आवश्यकता हो सकती है, मैंने अपने सर्वर को पीसीएस पर पैक किया है या मैं बस अपनी ओपनवीपीएन रूटिंग स्क्रिप्ट का संदर्भ दूंगा।
फ़ाइल भेजने के विरोध में ऐसा करने में अंतर यह है कि यह सर्वर पर डिस्क को कभी भी छूता नहीं है और सीधे स्मृति से चलाया जाता है (जब तक कि वे कमांड को लॉग इन नहीं करते)। आपको यह पता चल जाएगा कि इस तरह से encapsulating जानकारी (हालांकि अक्षम) आपको डेटा को एक फ़ाइल में पैकेज करने में मदद कर सकती है।
उदाहरण के लिए, आप अपनी मुख्य स्क्रिप्ट में बाह्य निर्भरताओं (यानी एक छवि) से कच्चे डेटा को शामिल करने के लिए इस विधि का उपयोग कर सकते हैं।
क्या आप '-' नहीं छोड़ सकते? यह बिना मेरे लिए ठीक काम करता है। –
क्या होगा यदि कोड उपफोल्डर में स्थित submodules है? –
इस मामले में आप कमांड लाइन तर्क कहां जोड़ देंगे? – ubundows