चेतावनी: यह लेख मशीन द्वारा अनुवादित है, जिससे खराब गुणवत्ता या गलत जानकारी हो सकती है, कृपया ध्यान से पढ़ें!
मूल
यह प्रोजेक्ट पिछले सेमेस्टर में इंटरनेट का अध्ययन पूरा करने के बाद लिखा और चलाया गया था। सबसे पहले, मैं एक ही समय में टीसीपी कनेक्शन और पैकेट कैप्चर टेस्ट करने के लिए पायथन का उपयोग करना चाहता था; चूंकि मेरे पास दो पीसी हैं, मैं फ़ाइल स्थानांतरण और सिंक्रनाइज़ेशन से पीड़ित हूं दो कंप्यूटरों के बीच समस्याएँ। ;मैंने स्वयं एक एसएफटीपी सर्वर स्थापित किया है, और रेसिलियो सिंक
, सिंथिंग
और अन्य फ़ाइल स्थानांतरण और सिंक्रनाइज़ेशन टूल का उपयोग किया है; क्योंकि मुझे “छोटा और सुंदर” सॉफ़्टवेयर पसंद है, मेरे पास इसके लिए अत्यधिक उच्च आवश्यकताएं हैं सॉफ़्टवेयर प्रदर्शन, दक्षता और संसाधन उपयोग। उपयोग की गई नोटबुक में सीमित बैटरी जीवन है और यह बहुत अधिक पृष्ठभूमि प्रक्रियाओं की अनुमति नहीं देता है, इसलिए मेरे पास फ़ाइल स्थानांतरण स्क्रिप्ट विकसित करने का विचार है।
शुरुआत में, फ़ंक्शन बहुत सरल था, एक समय में केवल एक फ़ाइल स्थानांतरित की जा सकती थी। बाद में, ट्रांसफर फ़ोल्डर जोड़ा गया, और कुछ प्रोग्राम कोड अनुकूलन किया गया; स्कूल लौटने के बाद, मैंने इसे दो कंप्यूटरों पर परीक्षण किया और पाया और इसे हल किया डेटा स्टिकी पैकेज की समस्या (थोड़ी देर के लूप का उपयोग करके); मैं इस बारे में चिंतित था कि ट्रांसमिशन प्रक्रिया के दौरान फ़ाइल क्षतिग्रस्त हो गई थी या नहीं, इसलिए मैंने वास्तविक समय गणना और सत्यापन MD5 जोड़ा (हालांकि MD5 ऐसा नहीं है) सुरक्षित, इसका उपयोग एकल के लिए किया जाता है फ़ाइल स्थानांतरण उत्कृष्ट है, न केवल गणना तेज़ है, बल्कि हैश वितरण भी बहुत अच्छा है); जब मैं अपने पीसी को कैंपस नेटवर्क से कनेक्ट करता हूं, तो मुझे चिंता होती है कि कैंपस नेटवर्क सुरक्षित नहीं है और डेटा द्वारा कैप्चर किया जा सकता है, इसलिए मैंने सिक्योर सॉकेट लेयर (एसएसएल) जोड़ा।
एक बार बड़ी संख्या में फ़ाइलें स्थानांतरित करते समय, कंप्यूटर स्लीप मोड में चला गया, जिसके परिणामस्वरूप फ़ाइलों को दोबारा प्रसारित करने की आवश्यकता पड़ी, जिससे न केवल बैंडविड्थ बर्बाद हुई (हालाँकि LAN में कुछ भी नहीं है), बल्कि समय भी बर्बाद हुआ। ब्रेकप्वाइंट रीट्रांसमिशन के समान कार्य। बाद में, मैंने कोड को फिर से तैयार किया, और सिस्टम जानकारी की तुलना करें, नेटवर्क स्पीड टेस्ट, फ़ोल्डर तुलना जोड़ा (स्थानांतरण पूरा होने के बाद, इसकी तुलना करना अधिक आश्वस्त है दो फ़ोल्डरों की सामग्री। ), कमांड रिमोट निष्पादन और अन्य फ़ंक्शन। पिछले दो दिनों में, मुझे अचानक पता चला कि इस छोटे से कार्यक्रम में बिना जाने ही बहुत सारे कार्य हैं, इसलिए मैंने इसे खुले स्रोत के रूप में साझा किया। निम्नलिखित कार्यक्रम का रीडमी है, और लेख के अंत में एक गोदाम का पता है।
परिचय
फाइल ट्रांसफर टूल्स
में एफटीएस (फाइल ट्रांसफर सर्वर)
और एफटीसी (फाइल ट्रांसफर क्लाइंट)
दो घटक शामिल हैं, जो हल्के, तेज, सुरक्षित, और बहुत कुछ हैं। शक्तिशाली क्रॉस-डिवाइस फ़ाइल स्थानांतरण स्क्रिप्ट।
समारोह
- फ़ाइल स्थानांतरण
- अलग-अलग फ़ाइलें या संपूर्ण फ़ोल्डर स्थानांतरित करें
- सुरक्षा गारंटी: एन्क्रिप्टेड ट्रांसमिशन (सिक्योर सॉकेट लेयर प्रोटोकॉल का उपयोग करके) और स्पष्ट टेक्स्ट ट्रांसमिशन का उपयोग किया जा सकता है
- शुद्धता की गारंटी: हैश मान के माध्यम से फ़ाइलों की स्थिरता को सत्यापित करें, और निर्णय लें कि फ़ोल्डर में सभी फ़ाइलें सही ढंग से प्रसारित की गई हैं या नहीं
- प्रगति बार डिस्प्ले: फ़ाइल स्थानांतरण प्रगति, वर्तमान नेटवर्क गति और शेष स्थानांतरण समय का वास्तविक समय प्रदर्शन
- एक ही नाम से फ़ाइल का नाम बदलने, डुप्लिकेट ट्रांसफ़र से बचने और ओवरराइटिंग ट्रांसफ़र करने के तीन तरीके
- कमांड लाइन, जो आसानी से कमांड को दूरस्थ रूप से निष्पादित कर सकती है और एसएसएच के समान वास्तविक समय में परिणाम लौटा सकती है
- स्वचालित रूप से सेवा होस्ट ढूंढें, या मैन्युअल रूप से कनेक्शन होस्ट निर्दिष्ट करें
- फ़ोल्डर तुलना, जो दो फ़ोल्डरों में फ़ाइलों के समान और अंतर जैसी जानकारी प्रदर्शित कर सकती है
- क्लाइंट और सर्वर सिस्टम की स्थिति और जानकारी देखें
- वास्तविक समय में कंसोल और फ़ाइलों में आउटपुट लॉग, और स्वचालित रूप से संपीड़ित लॉग फ़ाइलों को व्यवस्थित कर सकते हैं
- क्लाइंट और सर्वर के बीच नेटवर्क बैंडविड्थ का सुविधाजनक परीक्षण करें
- सुरक्षा बढ़ाने के लिए आप सर्वर के लिए एक कनेक्शन पासवर्ड सेट कर सकते हैं
- क्लाइंट और सर्वर की क्लिपबोर्ड सामग्री को आसानी से सिंक्रनाइज़ करें
विशेषताएँ
- प्रारंभ करें, चलाएं और शीघ्रता से प्रतिक्रिया दें
- न्यूनतम डिफ़ॉल्ट कॉन्फ़िगरेशन सिद्धांत को अपनाएं, जिसका उपयोग बॉक्स से बाहर किया जा सकता है, और आप आसानी से कॉन्फ़िगरेशन को स्वयं संशोधित कर सकते हैं
- इसका उपयोग किसी भी नेटवर्क वातावरण जैसे LAN और सार्वजनिक नेटवर्क में किया जा सकता है, जब तक कि दो होस्ट नेटवर्क से कनेक्ट हो सकें
- मल्टी-थ्रेडेड ट्रांसमिशन, तेज़ ट्रांसमिशन गति, वास्तविक परीक्षण 1000 एमबीपीएस बैंडविड्थ तक चल सकता है, उपकरण सीमाओं के कारण, उच्च बैंडविड्थ के लिए कोई परीक्षण नहीं
- रनटाइम पर मेमोरी का उपयोग छोटा होता है, और संसाधनों का न्यूनतम उपयोग सुनिश्चित करने के लिए आलसी लोडिंग मोड को अपनाया जाता है
- तुरंत खोलें, बंद करें और जाएं, प्रोग्राम बंद करने के बाद कोई प्रक्रिया नहीं रहेगी
- वर्तमान में विंडोज और लिनक्स प्लेटफॉर्म के साथ संगत
कैसे चुने
- यदि आप अधिक शक्तिशाली फ़ाइल स्थानांतरण सेवा चाहते हैं, तो कृपया एक FTP सर्वर, क्लाइंट चुनें (जैसे
फ़ाइलज़िला
,WinSCP
, आदि) - यदि आप स्थिर फ़ाइल सिंक्रनाइज़ेशन और साझाकरण चाहते हैं, तो ‘रेसिलियो सिंक’, ‘सिंकथिंग’ आदि का उपयोग करने की अनुशंसा की जाती है।
- यदि आप कभी-कभार ही फ़ाइलें स्थानांतरित करते हैं/उपरोक्त सेवाओं के पृष्ठभूमि भंडारण और संसाधन कब्जे को पसंद नहीं करते हैं/ऐसी शक्तिशाली सेवा की आवश्यकता नहीं है/फ़ंक्शन को अनुकूलित करना चाहते हैं, तो कृपया ‘फ़ाइल स्थानांतरण उपकरण’ चुनें
इंस्टॉल करें और चलाएं
FTS
डिफ़ॉल्ट रूप से पोर्ट 2023 और 2021 पर कब्जा कर लेता है, और FTC डिफ़ॉल्ट रूप से पोर्ट 2022 पर कब्जा कर लेता है। उनमें से, पोर्ट 2023 का उपयोग एफटीएस
के टीसीपी श्रवण पोर्ट के रूप में किया जाता है, और 2021 और 2022 का उपयोग सर्वर और क्लाइंट के बीच यूडीपी ट्रांसमिशन इंटरफेस के रूप में किया जाता है।
आप इस आलेख के अंत में विस्तृत कॉन्फ़िगरेशन जानकारी की जांच कर सकते हैं और उपरोक्त कॉन्फ़िगरेशन को संशोधित कर सकते हैं।
निष्पादन योग्य प्रोग्राम डाउनलोड करें
- दाईं ओर ‘रिलीज़’ पर क्लिक करें
फाइल ट्रांसफर टूल्स.ज़िप
डाउनलोड करें- फ़ोल्डर को अनज़िप करें, चलाने के लिए
FTC.exe
याFTS.exe
पर डबल-क्लिक करें - या प्रोग्राम पैरामीटर्स का उपयोग करने के लिए प्रोग्राम को टर्मिनल में चलाएं, जैसे
.\FTC.exe [-h] [-t थ्रेड] [-होस्ट होस्ट] [-p]
पायथन दुभाषिया के साथ दौड़ें
- स्रोत कोड को अपने प्रोजेक्ट स्थान पर क्लोन करें
pip install -r require.txt
का उपयोग करके सभी निर्भरताएँ स्थापित करें- अपने पायथन दुभाषिया का उपयोग करके स्क्रिप्ट निष्पादित करें
शॉर्टकट निष्पादन विधि
विंडोज़ को एक उदाहरण के रूप में लेते हुए, आप FTS और FTC के रनिंग कमांड को बैच फ़ाइलों के रूप में लिख सकते हैं, और फिर बैच फ़ाइल की निर्देशिका को अपने पर्यावरण चर में जोड़ सकते हैं, ताकि आप बस FTS
, FTC
टाइप कर सकें
आइए प्रोग्राम को चलाने के लिए डिफ़ॉल्ट और सरलतम कमांड का उपयोग करें।
उदाहरण के लिए, आप निम्न कमांड को FTS.bat
फ़ाइल में लिख सकते हैं
|
|
फ़ाइल FTC.bat
में निम्न आदेश लिखें
|
|
फिर, बैच फ़ोल्डर को अपने पर्यावरण चर में जोड़ें, और अंत में कोड को तुरंत चलाने के लिए अपने टर्मिनल में निम्न कमांड टाइप करें
|
|
उपरोक्त बैच फ़ाइल में, %1~%9
प्रोग्राम द्वारा पारित पैरामीटर का प्रतिनिधित्व करता है (%0
वर्तमान पथ का प्रतिनिधित्व करता है)
ध्यान दें कि टर्मिनल का डिफ़ॉल्ट कार्य पथ उपयोगकर्ता निर्देशिका (~) है, यदि आपको कॉन्फ़िगरेशन फ़ाइल को संशोधित करने की आवश्यकता है, तो कृपया इसे इस निर्देशिका में संशोधित करें।
उपयोग
एफटीसी
FTC फ़ाइलें और निर्देश भेजने के लिए क्लाइंट है।
|
|
पैरामीटर विवरण
-t
: थ्रेड्स की संख्या निर्दिष्ट करता है, डिफ़ॉल्ट तार्किक प्रोसेसर की संख्या है।
-होस्ट
: सर्वर होस्टनाम (होस्टनाम या आईपी) और पोर्ट नंबर (वैकल्पिक) को स्पष्ट रूप से निर्दिष्ट करें। जब इस विकल्प का उपयोग नहीं किया जाता है, तो क्लाइंट स्वचालित रूप से समान सबनेट के तहत एक सर्वर की खोज करेगा।
-p
: सर्वर के लिए कनेक्शन पासवर्ड स्पष्ट रूप से निर्दिष्ट करें (सर्वर के पास डिफ़ॉल्ट रूप से कोई पासवर्ड नहीं है)।
--plaintext
: स्पष्ट रूप से प्लेनटेक्स्ट ट्रांसमिशन डेटा निर्दिष्ट करें, जिससे सर्वर को प्लेनटेक्स्ट ट्रांसमिशन का भी उपयोग करने की आवश्यकता होती है।
कमांड विवरण
सामान्य कनेक्शन के बाद, कमांड दर्ज करें
- फ़ाइल (फ़ोल्डर) पथ दर्ज करें, और फ़ाइल (फ़ोल्डर) भेज दी जाएगी
sysinfo
दर्ज करें, दोनों पक्षों की सिस्टम जानकारी प्रदर्शित की जाएगीस्पीडटेस्ट एन
दर्ज करें, और नेटवर्क स्पीड का परीक्षण किया जाएगा, जहां एन इस परीक्षण में डेटा की मात्रा एमबी में है। ध्यान दें कि कंप्यूटर नेटवर्किंग में, 1 जीबी = 1000 एमबी = 1000000 केबी।- स्थानीय फ़ोल्डर और सर्वर फ़ोल्डर में फ़ाइलों के बीच अंतर की तुलना करने के लिए
स्थानीय_dir dest_dir की तुलना करें
दर्ज करें। - क्लाइंट और सर्वर क्लिपबोर्ड सामग्री को सिंक्रनाइज़ करने के लिए
क्लिप पुल/पुश
याक्लिप प्राप्त/भेजें
दर्ज करें - जब अन्य सामग्री दर्ज की जाती है, तो इसे सर्वर को निष्पादित करने के लिए एक निर्देश के रूप में उपयोग किया जाता है, और परिणाम वास्तविक समय में लौटाया जाता है।
स्क्रीनशॉट चलाएँ
निम्नलिखित स्क्रीनशॉट उसी होस्ट पर चल रहे हैं।
कार्यक्रम प्रारंभ
फ़ाइलें स्थानांतरित करें
निष्पादन आदेश: sysinfo
आदेश निष्पादित करें: स्पीडटेस्ट
आदेश निष्पादित करें: तुलना करें
आदेश निष्पादित करें: क्लिप
कमांड लाइन कमांड निष्पादित करें
एफटीएस
FTS
सर्वर साइड है, जिसका उपयोग फ़ाइलों को प्राप्त करने और संग्रहीत करने और क्लाइंट द्वारा भेजे गए निर्देशों को निष्पादित करने के लिए किया जाता है।
|
|
पैरामीटर विवरण
-d, --dest
: फ़ाइल प्राप्त करने का स्थान स्पष्ट रूप से निर्दिष्ट करें, डिफ़ॉल्ट कॉन्फ़िगरेशन आइटम “platform_default_path” का मान है (Windows प्लेटफ़ॉर्म डेस्कटॉप पर डिफ़ॉल्ट है)।
-p, --password
: दुर्भावनापूर्ण कनेक्शन को रोकने के लिए सर्वर के लिए एक पासवर्ड सेट करें।
--plaintext
: स्पष्ट रूप से सादे पाठ में डेटा ट्रांसमिशन निर्दिष्ट करें, और डिफ़ॉल्ट रूप से SSL एन्क्रिप्टेड ट्रांसमिशन का उपयोग करें।
--बचें
: सक्षम होने पर, यदि निर्देशिका में समान नाम वाली फ़ाइल पहले से मौजूद है, तो दो मामले हैं। यदि प्राप्त करने वाले छोर पर फ़ाइल का आकार भेजने वाले छोर से अधिक या उसके बराबर है, ** फ़ाइल के ट्रांसमिशन को ब्लॉक करें**, अन्यथा प्राप्त करें और *ओवरराइट करें *यह फ़ाइल; इस फ़ंक्शन का उपयोग मुख्य रूप से एक समय में बड़ी संख्या में फ़ाइलों के बाधित होने के बाद पुन:प्रसारण के लिए किया जाता है, ब्रेकप्वाइंट रीट्रांसमिशन के समान, कृपया **सावधानी के साथ उपयोग करें ** अन्य मामलों में। सक्षम नहीं होने पर, यदि मौजूदा फ़ाइल का नाम a.txt
है, तो स्थानांतरित फ़ाइलों का नाम क्रम में a (1).txt
, a (2).txt
के अनुसार रखा जाएगा।
स्क्रीनशॉट चलाएं
विन्यास
कॉन्फ़िगरेशन आइटम कॉन्फ़िगरेशन फ़ाइल config.txt
में हैं, जब कॉन्फ़िगरेशन फ़ाइल मौजूद नहीं है, तो प्रोग्राम स्वचालित रूप से डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल बनाएगा
मुख्य कार्यक्रम का मुख्य विन्यास
windows_default_path
: विंडोज़ प्लेटफ़ॉर्म के अंतर्गत डिफ़ॉल्ट फ़ाइल प्राप्त करने का स्थान
linux_default_path
: Linux प्लेटफ़ॉर्म के अंतर्गत डिफ़ॉल्ट फ़ाइल प्राप्त करने का स्थान
cert_dir
: प्रमाणपत्र फ़ाइल का भंडारण स्थान
लॉग संबंधित कॉन्फ़िगरेशन
windows_log_dir
: विंडोज़ प्लेटफ़ॉर्म के अंतर्गत डिफ़ॉल्ट लॉग फ़ाइल संग्रहण स्थान
linux_log_dir
: Linux प्लेटफ़ॉर्म के अंतर्गत डिफ़ॉल्ट लॉग फ़ाइल संग्रहण स्थान
log_file_archive_count
: जब लॉग फ़ाइलों की संख्या इस आकार से अधिक हो तो संग्रहित करें
log_file_archive_size
: जब लॉग फ़ाइल का कुल आकार (बाइट्स) इस आकार से अधिक हो जाए तो संग्रहित करें
पोर्ट कॉन्फ़िगरेशन पोर्ट संबंधित सामग्री
सर्वर_पोर्ट
: सर्वर टीसीपी श्रवण पोर्ट
सर्वर_सिग्नल_पोर्ट
: सर्वर यूडीपी श्रवण पोर्ट
क्लाइंट_सिग्नल_पोर्ट
: क्लाइंट यूडीपी श्रवण पोर्ट