नेटवर्क पर फ़ाइलों को स्थानांतरित करने की आवश्यकता अक्सर उत्पन्न होती है। जीएनयू/लिनक्स सिस्टम ऐसा करने के लिए कई प्रोटोकॉल और उपकरणों का समर्थन करते हैं, जिनमें से कुछ कुछ हद तक स्थायी फ़ाइल साझाकरण (जैसे एसएमबी, एएफपी, और एनएफएस) के लिए डिज़ाइन किए गए हैं, जबकि अन्य जैसे सिक्योर कॉपी (एससीपी) का उपयोग त्वरित मैनुअल और स्क्रिप्टेड के लिए किया जाता है। फ़ाइल स्थानांतरण। इनमें हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल (HTTP), बहुमुखी और सर्वव्यापी प्रोटोकॉल है जिस पर वर्ल्ड वाइड वेब निर्भर करता है।
पायथन, जो कि अधिकांश लिनक्स वितरणों में डिफ़ॉल्ट रूप से शामिल है, "SimpleHTTPServer" और "http.server" मॉड्यूल के माध्यम से सरल HTTP सर्वर प्रदान करता है। पहला पायथन 2 मानक पुस्तकालय में पाया जाता है, जबकि बाद वाले को पायथन 3 में शामिल किया जाता है। इन हल्के HTTP सर्वरों को अलग से स्थापना की आवश्यकता नहीं होती है और इसे एक ही कमांड के साथ तुरंत शुरू किया जा सकता है।
पायथन इंस्टॉल करना
आपके सिस्टम में कम से कम एक पायथन संस्करण शामिल होने की संभावना है, लेकिन अगर ऐसा नहीं है, तो अपने मूल पैकेज मैनेजर का उपयोग करके पायथन 3 स्थापित करें।
उदाहरण के लिए, डेबियन और उबंटू पर:
sudo apt update sudo apt install -y python3
HTTP सर्वर प्रारंभ करना
भेजने वाली मशीन द्वारा उपयोग किए गए आईपी पते पर ध्यान दें।
ip a s
पता करें कि निम्नलिखित कमांड के साथ कौन सा पायथन संस्करण स्थापित है:
python --version python3 --version
उसी मशीन पर, अपनी कार्यशील निर्देशिका को उस निर्देशिका में बदलें जिसमें वे फ़ाइलें हैं जिन्हें आप स्थानांतरित कर रहे हैं। इस तथ्य से अवगत रहें कि आपकी वर्तमान कार्यशील निर्देशिका की संपूर्ण सामग्री आपके नेटवर्क पर किसी के लिए भी पहुंच योग्य हो सकती है (या इंटरनेट अगर भेजने वाली मशीन का सार्वजनिक आईपी पता है), जबकि पायथन HTTP सर्वर चल रहा है।
cd /path/to/files/
उदाहरण के लिए:
cd /home/user/Documents/
अब आप HTTP सर्वर शुरू कर सकते हैं। Python 2.x के लिए, SimpleHTTPServer मॉड्यूल का उपयोग करें:
python -m SimpleHTTPServer
या http.server Python 3.x के मामले में:
python3 -m http.server
दोनों विविधताएं डिफ़ॉल्ट रूप से पोर्ट 8000 पर सुनती हैं, हालांकि आप मॉड्यूल नाम के बाद स्पष्ट रूप से एक अलग पोर्ट नंबर निर्दिष्ट कर सकते हैं।
python -m SimpleHTTPServer [port] python3 -m http.server [port]
नोट: यदि आप 1024 के अंतर्गत पोर्ट चुनते हैं तो रूट विशेषाधिकारों की आवश्यकता होती है।
आपकी फ़ाइलें डाउनलोड करना
प्राप्त करने वाली मशीन पर, आप अपनी फ़ाइलों को डाउनलोड करने के लिए किसी भी HTTP क्लाइंट का उपयोग कर सकते हैं। यदि आप ग्राफिकल वातावरण का उपयोग कर रहे हैं, तो ब्राउज़र अक्सर कमांड लाइन उपयोगिताओं की तुलना में अधिक सुविधाजनक होता है। बस https://IP_ADDRESS:8000 पर ब्राउज़ करें, जहां "IP_ADDRESS" भेजने वाले कंप्यूटर का आईपी पता है, और उन्हें डाउनलोड करने के लिए वांछित फाइलों पर क्लिक करें।
वैकल्पिक रूप से, आप अपनी फ़ाइलें लाने के लिए Wget या cURL का उपयोग कर सकते हैं। आपके पास पहले से ही एक या दोनों स्थापित होने चाहिए। यदि दोनों नहीं हैं, तो हम Wget को स्थापित करने का सुझाव देते हैं, क्योंकि यह अधिक उपयोगकर्ता के अनुकूल है और संपूर्ण निर्देशिकाओं को डाउनलोड करने का समर्थन करता है।
डेबियन और उबंटू के लिए:
sudo apt install wget
आरएचईएल और सेंटोस 6/7 के लिए:
sudo yum install wget
फेडोरा और आरएचईएल/सेंटोस 8 के लिए:
sudo dnf install wget
Wget का उपयोग करना
Wget के साथ एक फ़ाइल डाउनलोड करने के लिए, बस Wget को और उसके बाद उस फ़ाइल के URL को कॉल करें जिसे आप डाउनलोड करना चाहते हैं।
wget https://IP_ADDRESS:8000/filename
आप Wget का उपयोग -r
. जोड़कर पूरी निर्देशिका को पुनरावर्ती रूप से डाउनलोड करने के लिए भी कर सकते हैं कमांड लाइन फ्लैग।
wget -r https://IP_ADDRESS:8000/
कर्ल का उपयोग करना
डिफ़ॉल्ट रूप से, कर्ल फ़ाइल सामग्री को आपके टर्मिनल पर प्रिंट करने का प्रयास करता है। तो इसके बजाय फ़ाइल को सहेजने के लिए, -o
. के साथ एक फ़ाइल नाम निर्दिष्ट करें झंडा।
curl https://IP_ADDRESS:8000/filename -o filename
निष्कर्ष
पायथन के मानक पुस्तकालय में HTTP कार्यक्षमता फ़ाइलों को स्थानांतरित करने का एक बुनियादी लेकिन तेज़ और सुविधाजनक तरीका प्रदान करती है, जो कुछ परिदृश्यों के लिए एकदम सही है। लेकिन ध्यान रखें कि क्योंकि यह न तो एन्क्रिप्शन और न ही प्रमाणीकरण के साथ सादा HTTP है, इसलिए आपको संवेदनशील फाइलों को उजागर न करने के लिए सावधान रहना चाहिए।