एफ़टीपी पर एक फ़ाइल टिक करना


11

मैं अपने विंडोज डेस्कटॉप से ​​दूरस्थ सर्वर पर बड़ी लॉग फ़ाइलों तक पहुंचने का प्रयास कर रहा हूं। मेरे पास केवल इस रिमोट मशीन तक एफ़टीपी पहुंच है, एसएसएच एक्सेस नहीं।

फिलहाल, मैं पूरी फाइल को एफ़टीपी से नीचे खींचने के लिए WinSCP का उपयोग कर रहा हूं। इसका मतलब है कि मुझे हर बार पूरी फाइल ट्रांसफर करनी होगी। हालाँकि, यह एक लॉग फ़ाइल है, मुझे केवल अंतिम कुछ पंक्तियों की आवश्यकता है।

यह विशेष रूप से निराशाजनक है, क्योंकि मेरा बैंडविड्थ गंभीर रूप से सीमित है, इसलिए संपूर्ण फ़ाइल को स्थानांतरित करने में कुछ मिनट लगते हैं।

अगर मेरे पास शेल ऐक्सेस है तो इसे आसानी tail -100से अंतिम 100 लाइनों को प्राप्त करने के लिए कुछ का उपयोग करके प्राप्त किया जा सकता है ।

मैं एफ़टीपी के माध्यम से यह प्रदर्शन करने के लिए एक समाधान खोजना चाहता हूं। ध्यान दें कि यह एक सतत पूंछ नहीं होना चाहिए, बस एक-बंद पर्याप्त होगा।

जवाबों:


8

आप क्या करना चाहते हैं, निश्चित रूप से एफ़टीपी के साथ किया जा सकता है। तकनीकी रूप से यह वही है, जो कोई भी एफ़टीपी ग्राहक करता है, जब एक बाधित फ़ाइल डाउनलोड को फिर से शुरू करता है।

हालांकि एक उपयोगकर्ता के दृष्टिकोण से, मुझे नहीं पता, अगर कोई एफ़टीपी क्लाइंट केवल दी गई संख्या के अनुगामी बाइट्स के स्पष्ट डाउनलोड का समर्थन करता है।

लेकिन कुछ एफ़टीपी ग्राहक निश्चित रूप से आपके द्वारा पहले डाउनलोड की गई फ़ाइल की नई अनुगामी सामग्री को डाउनलोड करने की अनुमति देंगे।

WinSCP के साथ विशेष रूप से, बस एक लॉग फ़ाइल डाउनलोड आरंभ करें। फिर, अधिलेखित पुष्टि प्रॉम्प्ट पर , फिर से शुरू करें (यह बिना बटन के ड्रॉप डाउन मेनू में है ) का चयन करें। ध्यान दें कि विकल्प स्पष्ट रूप से उपलब्ध है, केवल अगर स्रोत फ़ाइल गंतव्य फ़ाइल से बड़ी है।

यदि आप वास्तव में लॉग की केवल पिछली कुछ पंक्तियों को डाउनलोड करना चाहते हैं, तो आप WinSCP को धोखा दे सकते हैं, डाउनलोड शुरू करने से पहले लॉग फ़ाइल से छोटे आकार की डमी स्थानीय फ़ाइल बनाकर।

आप भी आसानी से उपरोक्त चाल को स्वचालित कर सकते हैं:

fsutil file createnew mylog.log 100000000
winscp.com /command "open mysession" "get -resume /path_to_log/mylog.log" "exit"

विकल्प के लिए fsutil, जल्दी से एक विंडोज सिस्टम पर बड़ी फाइल बनाने के लिए देखें ?

अधिक प्रयास के साथ आप स्क्रिप्ट को पहले लॉग फ़ाइल आकार की जांच कर सकते हैं और स्वचालित रूप से डमी फ़ाइल आकार की गणना लॉग आकार की तुलना में कुछ किलोबाइट छोटे कर सकते हैं।


0

मुझे नहीं पता कि आप WinSCP का उपयोग करके यह कैसे कर सकते हैं, और वास्तव में यह संभव नहीं हो सकता है, लेकिन सामान्य तौर पर, आपको REST कमांड का उपयोग करने में सक्षम होना चाहिए । RFC 3659 देखें । यह मेरे लिए स्पष्ट नहीं है कि आप फ़ाइल में देर से डाउनलोड करना शुरू कर सकते हैं, हालांकि, या क्या आपको पहले से ही मार्कर प्राप्त करने की आवश्यकता है। RFC 3659 इंगित करता है कि यह संभव है, कम से कम STREAM मोड में, हालांकि:

FRE STRUcture के साथ STREAM मोड ट्रांसफर फिर से शुरू किया जा सकता है, हालांकि डेटा के अलावा कोई भी रीस्टार्ट मार्कर ट्रांसफर नहीं किया गया है। यह SESTE कमांड का उपयोग करके किया जाता है, यदि आवश्यक हो, तो RESTART (REST) ​​कमांड, और मानक फ़ाइल स्थानांतरण आदेशों में से एक के साथ संयोजन में।


0

मैंने किसी ऐसे सॉफ़्टवेयर के बारे में नहीं सुना जो आपकी आवश्यकताओं का समर्थन करता हो। लेकिन अगर आप प्रोग्रामर हैं, तो आपको यह समझना चाहिए कि पर्ल में यह कैसे लिखना है।

यहां मुझे उदाहरण मिला कि सभी फ़ाइल कैसे प्राप्त करें। यह आपका संकल्प नहीं है, लेकिन यह आपको यह समझने में मदद करता है कि कैसे करें: http://www.perlmonks.org/?node_id=907019

अन्य, लाइब्रेरी नेट के लिए मदद :: एफ़टीपी: http://search.cpan.org/dist/libnet/Net/FTP.pm

इसका उपयोग कर आप सर्वर से एफटीपी कनेक्शन खोल सकते हैं (पहला उदाहरण) प्राधिकरण बनाएं (पहला उदाहरण)

दूसरा URL आपको तरीकों का उपयोग करके फ़ाइल के अंतिम भाग को प्राप्त करने में मदद करता है: -> ascii में स्थानांतरण मोड को ascii पर सेट करें क्योंकि यह लॉगफ़ाइल है -> आकार (फ़ाइल) की गणना के लिए फ़ाइल का आकार मिलता है जहाँ आपको शुरू करना चाहिए -> पुनरारंभ (WHERE) फ़ाइल सेट करें जहाँ फ़ाइल आप पढ़ना शुरू करना चाहते हैं, वहां से कोर्सर -> पढ़ें (BUFFER, SIZE [, TIMEOUT]) सीधे छोटे बड़े हिस्से को BUFFER वेरिएबल में पढ़ें

एक अन्य कार्य: लंबाई (BUFFER) आपको बताता है कि आपको कितना डेटा मिलता है। यदि यह शून्य है, तो आप स्क्रीन पर EOF प्रिंट ("$ BUFFER \ n") सरल प्रिंट बफर सामग्री तक पहुंच गए हैं

ध्यान दें, यह पूरी तरह से संकल्प नहीं है, लेकिन यह कैसे करना है। केवल एक ही कारण है कि मैं यह सब लिखता हूं, शायद आपके कार्य के लिए कोई सॉफ्टवेयर तैयार नहीं है।

यदि आप नहीं जानते कि उस प्रोग्राम को कैसे लिखना है, तो बस stackoverflow.com पर पूछें, सुपरयुजर नहीं। कई प्रोग्रामर हैं जो मदद के लिए तैयार हैं।

यदि यह संभव है, तो अपने ftp साइट डाउनलोड फिर से शुरू करने का समर्थन करता है। फ़ाइल के इस पढ़ने के अंत भाग के साथ असंभव है।

एक अन्य आंशिक संकल्प लॉग फ़ाइल रोटेशन, एक फ़ाइल एक दिन या एक घंटे हो सकता है। यह निर्भर करता है कि लॉग फ़ाइल कितनी तेज़ी से बढ़ती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.