सवाल पूरी तरह से एफ़टीपी निर्देशिका डाउनलोड करने के लिए wget का उपयोग करना


मैं सभी फाइलों और फ़ोल्डरों को एक मेजबान से दूसरे में कॉपी करना चाहता हूं। पुराने होस्ट पर फ़ाइलें / var / www / html पर बैठती हैं और मेरे पास केवल उस सर्वर पर एफ़टीपी पहुंच है, और मैं सभी फ़ाइलों को टैर नहीं कर सकता। एफ़टीपी के माध्यम से पुराने होस्ट के लिए नियमित कनेक्शन मुझे / home / admin फ़ोल्डर में लाता है।

मैंने अपना नया सर्वर निम्न कमांड फॉर्म चलाने का प्रयास किया:

wget -r ftp://username:password@ip.of.old.host

लेकिन मुझे लगता है कि एक बनाई गई index.html फ़ाइल है।

एफ़टीपी पर फिर से wget का उपयोग करने के लिए सही वाक्यविन्यास क्या है?


87
2018-06-13 09:21


मूल


ध्यान दें कि, डिफ़ॉल्ट रूप से, wget -r की अधिकतम रिकर्सन गहराई 5 है; यदि आपके पास गहरी उपनिर्देशिकाएं हैं, तो उन्हें तब तक अनदेखा कर दिया जाएगा जब तक कि आप इसे परिवर्तित न करें (मैन पेज में देखें -l)। - mikewaters


जवाब:


प्रयत्न -m के लिये --mirror

wget -m ftp://username:password@ip.of.old.host

119
2018-06-13 10:04



सुरक्षा कारण के लिए, इसका उपयोग करना अच्छा होगा --ask-password पासवर्ड रखने से बचने के लिए history। - checksum
यह बहुत अच्छा है। एक जादू की तरह काम किया.. - Sambhav Sharma
यह स्वीकार्य उत्तर होना चाहिए (बेहतर दृश्यता के लिए)। - bgondy
इसमें डाउनलोड करने के लिए निर्देशिका का पथ शामिल नहीं है, मुझे लगता है कि @ फोरमोडा जवाब बेहतर है - Wasim A.


आपके पास यह सही है, आपको अंत में एक पिछला * की आवश्यकता है:

wget -r ftp://username:password@1.2.3.4/dir/*

साझा सर्वर के लिए, आप इस तरह उपयोग कर सकते हैं:

wget -r ftp://1.2.3.4/dir/* --ftp-user=username --ftp-password=password

चूंकि अधिकतर साझा सर्वरों में ftp-username नाम होता है जैसे उपयोगकर्ता नाम @ होस्टनाम, तो, पहला wget कमांड काम नहीं करता है, और दूसरा आदेश ठीक काम करता है।


36
2018-06-22 12:35



यह केवल एक निर्देशिका गहरी जाएगी। -एम ध्वज का उपयोग करने के लिए बेहतर - SvennD
कुछ मामलों में दूसरा आदेश अंतरिक्ष की वजह से काम नहीं कर रहा है, आप इस तरह के शेयर होस्टिंग के लिए पहले कमांड का उपयोग कर सकते हैं। ** wget -r ftp: / / उपयोगकर्ता नाम% 40host: पासवर्ड @ होस्ट / डीआईआर / ** - Wasim A.
नोट: आपको या तो उपयोग करना चाहिए -m या -r -l inf क्योंकि -r की डिफ़ॉल्ट रिकर्सन गहराई है 5. देखें gnu.org/software/wget/manual/... - ndemou


Wget के अलावा, आप भी उपयोग कर सकते हैं lftp स्क्रिप्ट मोड में। निम्न आदेश दिए गए स्थानीय निर्देशिका में दी गई दूरस्थ FTP निर्देशिका की सामग्री को दर्पण करेगा, और इसे क्रॉन नौकरी में रखा जा सकता है:

lftp -c 'open <hostname>; user <username> <password>; mirror -e <remote-src-path> <local-dest-path>; quit'

यह स्वचालित रूप से निर्देशिकाओं में रिकर्सन को संभालता है और दूरस्थ स्रोत प्रारंभ निर्देशिका को डेटा डाउनलोड करने से निर्दिष्ट करने की अनुमति देता है।


6
2018-06-13 18:04





आप 'curlftpfs - एक स्थानीय निर्देशिका के रूप में एक FTP होस्ट को माउंट करें' का उपयोग कर सकते हैं और, एक बार घुड़सवार होने पर, आप 'cp -r' जैसे सामान्य फ़ाइल टूल का उपयोग कर सकते हैं।


5
2018-06-13 21:22



curlftpfs जब तक आप डाउनग्रेड नहीं करते हैं तब तक बड़ी प्रदर्शन समस्याएं हैं libcurl3-gnutls - Hengjie


एफ़टीपी से डेटा डाउनलोड करने के लिए नीचे wget कमांड की जांच करें।

wget --user="<user-name>" --password="<password>" -r -np -nH --cut-dirs=1 --reject "index.html*" "<URL to download files>"

-r: रिकर्सिव डाउनलोड के लिए है।

-np: माता पिता के आरोही के लिए नहीं है।

-nH: यूआरएल i.e. abc.xyz.com जैसे नाम वाले निर्देशिका के निर्माण को अक्षम करने के लिए है

--cut-dirs: मूल निर्देशिका की संख्या को अनदेखा करने के लिए है। इस विकल्प का मान आपके आदेश के लिए अलग होगा।

आप उपरोक्त आदेश निष्पादित करके जांच सकते हैं।


4
2017-07-24 04:48





रिकर्सन गहराई के कारण -r के बजाय -r का उपयोग करें।

http://www.editcorp.com/Personal/Lars_Appel/wget/wget_2.html#SEC11


3
2018-06-17 11:56





काम करना चाहिए:

wget -r ftp://ftp:ftp@ftp.sunet.se/tst/

2
2018-06-13 09:54





उपयोग:

wget -m ftp://192.168.0.1

और यह सभी फाइलों और फ़ोल्डरों को दर्पण करेगा।


2
2018-06-13 14:07



जैसा कि मैंने कहा, एफ़टीपी के माध्यम से लॉग इन करने से मुझे / home / admin फ़ोल्डर में ले जाता है, और मुझे आवश्यक फाइलें / var / www / html में हैं, इसलिए जब मैंने आपके द्वारा सुझाए गए आदेश को चलाया है, तो मुझे केवल / home / admin की सामग्री मिलती है मैंने इसे चलाने की कोशिश की 192.168.0.1/var/www/html, लेकिन फिर यह सीडब्ल्यूडी / घर / व्यवस्थापक / var / www / html की कोशिश करता है। मैं रूट से इस फ़ोल्डर में कैसे जा सकता हूं?
मुझे इस विशेष समस्या का कोई अनुभव नहीं है, लेकिन आप अपने घर के नीचे / var / www / html पर symlink बनाने का प्रयास कर सकते हैं। फिर आप एक पते का उपयोग कर सकते हैं 192.168.0.1/html - prestomation
मैंने एक सिम्लिंक बनाने की कोशिश की, लेकिन इसके परिणामस्वरूप मेरे स्थानीय पर एक समान सिम्लिंक बनाने के लिए wget उत्पन्न हुआ।


यह सही वाक्यविन्यास है। निश्चित नहीं है कि आपको अपेक्षित परिणाम क्यों नहीं मिल रहे हैं।

ऐसा करने के लिए हमेशा ऐसा करने के एक से अधिक तरीके हैं। विशेष रूप से ncftpget में ncftp आज़माएं


1
2018-06-13 09:27



मैं अपने नए सर्वर पर अधिक सॉफ्टवेयर इंस्टॉल नहीं कर सकता। क्या मुझे / var / www / html से सभी फ़ाइलों को डाउनलोड करने के लिए wget नहीं कहना चाहिए? मैंने wget -r कोशिश की उपयोगकर्ता नाम: password@ip.of.old.host/var/www/html लेकिन मुझे एक निर्देशिका मिली त्रुटि नहीं मिली।


मैं समझ सकता हूं कि क्या आप इसे क्रॉन या कुछ में डंप करने की कोशिश कर रहे हैं, लेकिन क्यों न केवल अपने सामान्य ग्राहक और mget * के साथ सर्वर में ftp? यह सफलता का एक तेज मार्ग हो सकता है।


1
2018-06-13 13:37



मैंने mget * की कोशिश की लेकिन यह सब-फ़ोल्डर्स के साथ काम नहीं करता, कह रहा है कि स्थानीय उप-फ़ोल्डर मौजूद नहीं है। क्या उसे स्थानीय फ़ोल्डर स्वचालित रूप से बनाने का कोई तरीका है?
आपके ग्राहक के आधार पर, -आर स्विच आमतौर पर चाल करता है। आईई: mget -r * - dr.pooter
mmm। लिनक्स में AFAIK मानक ftp क्लाइंट को निर्देशिकाओं को पुनः प्राप्त करने के लिए डिज़ाइन नहीं किया गया है। मेरा मतलब है - कोई विकल्प नहीं है। अन्य क्लाइंट जैसे ncftp या lftp समर्थन रिकर्सिव पुनर्प्राप्ति लेकिन वे आमतौर पर डिफ़ॉल्ट रूप से उपलब्ध नहीं होते हैं। - Stann