सवाल मैं sftp में एक पूरी निर्देशिका कैसे प्राप्त करूं?


मैं बस sftp का उपयोग करना सीख रहा हूं, और मैं दूरस्थ कंप्यूटर से एक निर्देशिका को अपने स्थानीय कंप्यूटर पर कॉपी करना चाहता हूं। अगर मैं कोशिश करता हूँ

get [directory]

यह मुझे यह त्रुटि देता है:

Cannot download non-regular file: /home/mpirocch/Documents

get -R काम नहीं करता है, या तो।


168
2017-09-12 21:39


मूल


रिकर्सिव पुट / get 5.4 में ओपनएसएसएच में जोड़ा गया था, जिसे 2010 में रिलीज़ किया गया था। आप अपने सर्वर को अपग्रेड करने पर विचार कर सकते हैं क्योंकि इसमें बहुत सारे बग फिक्स और बेहतर सुरक्षा सुविधाएं भी शामिल हैं। - Lèse majesté


जवाब:


उपयोग -r (रिकर्सिव) ध्वज:

get -r *

239
2017-11-29 21:38



वास्तव में प्रश्न का उत्तर देने वाले उत्तर देने के लिए धन्यवाद। - jonnyflash
मुझे देता है: get: Invalid flag -r - ghbarratt
यह मुझे अमान्य ध्वज भी देता है। मुझे यकीन नहीं है कि यह सभी प्रणालियों पर समर्थित है। - Ben
@ बेन: जब मैंने 200 9 में इस सवाल से पूछा, तो -r ध्वज मौजूद नहीं था। क्या आपका सिस्टम अद्यतित है? - Matthew
@ सिल्विनसी नहीं सब वर्तमान प्रणाली CentOS 6.4 openssh-client-5.3p1-84.1.el6.x86_64 के साथ अवैध विकल्प - CrackerJack9


उपयोग:

scp -r mpirocch@my-server:/home/mpirocch/Documents Documents

51
2017-09-12 21:51



यह काम करता है, लेकिन एसएफटीपी से ऐसा करने में सक्षम होना अच्छा होगा (इसलिए मैं इसे कॉपी करने से पहले कॉपी कर सकता हूं)। क्या यह संभव है? - Matthew
@ मैथ्यू: मुझे ऐसा नहीं लगता। मैं खुद को कुछ समय के लिए एक ही सवाल पूछ रहा हूं और इस पल के लिए मेरे पास सबसे अच्छा जवाब है scp -r। या आप एक उन्नत एसएफटीपी क्लाइंट जैसे फाइलज़िला का उपयोग कर सकते हैं। - Cristian Ciupitu
scp -r symlinks का पालन करेंगे ... - jsleuth
कुछ सिस्टम अनुमति दे सकते हैं sftp, लेकिन नहीं scp पहुंच। - Turion


उपयोग lftp:

lftp sftp://user@host

फिर, lftp के भीतर, cd निर्देशिका में आप कॉपी करना चाहते हैं, और उपयोग करें mirror चयनित निर्देशिका को रिकर्सली डाउनलोड करने के लिए आदेश, इस तरह:

mirror

यह आदेश विकल्प और तर्क स्वीकार करता है:

आईना [विकल्प] [स्रोत [लक्ष्य]]

उदाहरण के लिए, -R (या --reverse) विकल्प रिमोट निर्देशिका में स्थानीय निर्देशिका पेड़ अपलोड करने का कारण बन जाएगा:

mirror -R

देखें lftp(1) मैन पेज परियोजना की साइट पर या Debian.org पर अन्य आदेशों और विकल्पों के लिए।


38
2018-04-08 13:54



+1 lftp जादू और खुशी के एक छोटे से बंडल की तरह है! - WCWedin


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


15
2017-09-13 03:11



वाह, नॉटिलस एसएफटीपी के साथ बहुत अच्छी तरह से काम करता है। मैंने नॉटिलस में एक बुकमार्क जोड़ा, और अब यह सब हास्यास्पद रूप से आसान है। धन्यवाद! - Matthew
मेरे पास नॉटिलस एसएफटीपी के साथ प्रदर्शन समस्या है। हाँ, यह वास्तव में सुविधाजनक है लेकिन मैं नॉटिलस के माध्यम से 1 जीबीटी / नेटवर्क को संतृप्त करने में सक्षम नहीं था, जबकि सादे के साथ sftp/ssh कमांड लाइन इंटरफ़ेस मैं था (सीसीए 100 एमबी / एस फ़ाइल स्थानान्तरण)। तो मुद्दा जीएनयू / लिनक्स मिंट पर नॉटिलस था। - stamster


अच्छी तरह से इस छोटी सी गाइड को मदद करनी चाहिए, रिमोट सर्वर को स्थानीय फ़ोल्डर में lftp के साथ दर्पण करें

lftp sftp://user:password@server.org:22 -e 'mirror --verbose --use-pget-n=8 -c /remote/path /local/path'

  • sftp:// = एसएफटीपी प्रोटोकॉल का उपयोग करता है
  • mirror = दर्पण मोड
  • verbose = फ़ाइलों को डाउनलोड किया जा रहा है दिखाता है
  • use-pget-n = सेगमेंट की संख्या, वास्तव में बड़ी फ़ाइलों को गति देने के लिए उपयोगी है
  • parallel = एक ही समय में गुणक गुण डाउनलोड करें

यदि आप समांतर स्विच आउट में फ़ाइलों को डाउनलोड करना चाहते हैं use-pget-n=8 साथ में --parallel=8 

उम्मीद है कि यह किसी स्थानीय फ़ोल्डर में किसी दूरस्थ फ़ोल्डर को मिरर करने की आवश्यकता में मदद करता है


13
2018-03-10 01:18



धन्यवाद, यह अन्य तरीकों के विफल होने के बाद, मेरे लिए काम किया (विशेष रूप से sftp पर कोई "-r" विकल्प नहीं)। पासवर्ड में डॉलर के पात्रों के कारण, मेरे मामले में कमांड के पहले भाग को उद्धृत करने की आवश्यकता थी lftp 'sftp://user:pa$$word@server.org:22' -e 'mirror --verbose --use-pget-n=8 -c /remote/path /local/path' - Jason


प्रयत्न mget के बजाय get

स्पष्टीकरण: mget  मर्जी अगर आप उस निर्देशिका के अंदर हैं जो आप प्रतिलिपि बनाना चाहते हैं तो काम करें; यदि आप ऐसा कुछ करते हैं:

sftp> cd dir_to_get
sftp> mget *

यह उस निर्देशिका में सभी फाइलें प्राप्त करेगा। हालांकि, यह किसी भी उपनिर्देशिका की सामग्री को पुन: प्राप्त नहीं करेगा।


12
2017-09-12 22:34



भूलभुलैया मेरे लिए पाने से बेहतर काम नहीं करती है। - Matthew
प्राप्त करने के साथ गैर-नियमित फ़ाइल डाउनलोड नहीं कर सकता है - Dchris
यह मेरे लिए एक प्रणाली पर काम करता है जहां 'get -r' काम नहीं करता था। - Tchotchke


get -r [directory]

हो जाता है [directory] और इसके तहत सबकुछ, जहां r रिकर्सिव के लिए खड़ा है। मैंने इसे टाइप करके पाया help से sftp


9
2018-03-06 16:56



आईएमओ यह इस सवाल का सबसे अच्छा जवाब है। :) - ramrunner
यह एक का डुप्लिकेट है उत्तर से 2 9 नवंबर '10 (लगभग डेढ़ साल पहले)। - Cristian Ciupitu