मैंने एक प्रोग्राम बनाया है जो फाइलों के समूह पर चलता है और उनमें से कुछ के लिए आमंत्रित करता है:अनुरोध पर एसएसएच पर फ़ाइलों को स्थानांतरित करने के लिए प्रेषक और रिसीवर?
scp <file> [email protected]:<remotefile>
हालांकि, मेरे मामले में, हजारों छोटी फाइलें हो सकती हैं जिन्हें स्थानांतरित करने की आवश्यकता है, और एसपीपी एक नया खोल रहा है उनमें से प्रत्येक के लिए एसएसएच कनेक्शन, जिसमें काफी कुछ ओवरहेड है।
मैं सोच रहा था कि कोई समाधान नहीं है जहां मैं एक प्रक्रिया को जारी रखता हूं जो कनेक्शन को बनाए रखता है और मैं इसे एकल फाइलों पर प्रतिलिपि बनाने के लिए "अनुरोध" भेज सकता हूं।
आदर्श रूप से, मैं कुछ प्रेषक और रिसीवर प्रोग्राम के संयोजन की तलाश में हूं, जैसे कि मैं शुरुआत में एक ही प्रक्रिया (1) शुरू कर सकता हूं:
ssh [email protected] receiverprogram
और प्रत्येक फ़ाइल के लिए, मैं एक आह्वान करता हूं कमांड (2):
senderprogram <file> <remotefile>
और (2) के इनपुट (2) के आउटपुट को पाइप करें, और इससे फ़ाइल को स्थानांतरित किया जा सकेगा। अंत में, मैं केवल प्रक्रिया को भेज सकता हूं (1) समाप्त करने के लिए कुछ सिग्नल।
अधिमानतः प्रेषक और रिसीवर प्रोग्राम यूनिक्स के लिए ओपन सोर्स सी प्रोग्राम हैं। वे एक पाइप, या किसी अन्य रचनात्मक समाधान के बजाय सॉकेट का उपयोग कर संवाद कर सकते हैं।
हालांकि, यह एक महत्वपूर्ण बाधा है कि प्रत्येक फ़ाइल उस समय स्थानांतरित हो जाती है जब मैं इसे पुन: सक्रिय करता हूं: फ़ाइलों की सूची एकत्र करने के लिए स्वीकार्य नहीं है और फिर सभी फ़ाइलों को एक बार में स्थानांतरित करने के लिए scp
का एक उदाहरण आमंत्रित करना अतं मै। इसके अलावा, मेरे पास प्राप्तकर्ता होस्ट के लिए केवल सरल खोल पहुंच है।
अद्यतन: मुझे एसएसएच की मल्टीप्लेक्सिंग सुविधाओं का उपयोग कर कनेक्शन ओवरहेड की समस्या का समाधान मिला, नीचे अपना स्वयं का जवाब देखें। फिर भी, मैं एक बक्षीस शुरू कर रहा हूं क्योंकि मुझे पता है कि कोई प्रेषक/रिसीवर प्रोग्राम मौजूद है या नहीं, जैसा कि मैंने यहां वर्णन किया है। ऐसा लगता है कि वहां कुछ ऐसा होना चाहिए जिसका उपयोग किया जा सके, उदा। Xmodem/ymodem/zmodem?
एक मामूली नोट - यदि आप ब्रूनो के रूप में वर्णित एसपीपी/एसएसएच का उपयोग करते हैं, तो प्रदर्शन को चुनने के लिए एक रिश्तेदार "फ्रीबी" तर्क "-c आर्कफॉर" तर्क जोड़ना है - इससे एन्क्रिप्शन चरण अधिक हल्का होता है, और कर सकता है मोटे तौर पर डबल througput। – jasedit