जवाबों:
sftp
, जैसे, cp
और scp
आवश्यकता होती है कि जब आप किसी फ़ोल्डर (और उसकी सामग्री, स्पष्ट रूप से) की नकल करते हैं, तो आपको स्पष्ट रूप से यह बताना होगा कि आप फ़ोल्डर को -r
विकल्प के साथ पुनरावर्ती रूप से स्थानांतरित करना चाहते हैं ।
इसलिए, -r
कमांड में जोड़ें ।
-r
, तो sftp
कमांड में जोड़ें । sftp -r user@host
Couldn't canonicalise: No such file or directory
:।
# sftp user@remote-host
#> get -r remote-folder
मैं केवल सुझाव दे सकता हूं, आप उपयोग करें rsync
। यह कुछ हद तक उद्योग मानक है, जब सुरक्षित कनेक्शन पर फाइलें चलती हैं।
rsync -alPvz ./source_dir server.com:destination_dir
यह वही है जो मैं वर्षों से उपयोग कर रहा हूं।
( -a
विकल्प निर्देशिका पुनरावृत्ति जैसी चीजों का ध्यान रखता है)
-a
= पुनरावृत्ति + प्रतीकात्मक लिंक, अनुमतियाँ, संशोधन समय, मालिक, समूह, विशेष फ़ाइलें और डिवाइस फ़ाइलों को रखें (उत्तरार्द्ध को सुपर-उपयोगकर्ता विशेषाधिकारों की आवश्यकता है); -l
= प्रतीकात्मक लिंक रखना (पहले से ही शामिल है -a
); -P
= स्थानांतरण के दौरान प्रगति दिखाएं + आंशिक रूप से स्थानांतरित फ़ाइलों को रखें; -v
= वर्बोज़ मोड (हालांकि -P
एक अजीब (बग? protocol version mismatch
त्रुटि) से बचने के लिए उपयोग करते समय यह अनिवार्य लगता है ; -z
= स्थानांतरित डेटा का संपीड़न सक्षम करें।
-l
स्विच का उपयोग किया जाना है या नहीं। मुझे याद है कि पुराने संस्करणों -l
में शामिल नहीं था -a
।
आप उपयोग करने में सक्षम भी हो सकते हैं scp
। सामान्य प्रारूप है
scp -rp sourceDirName username@server:destDirName
scp
"सुरक्षित प्रति" का अर्थ है। झंडे हैं
-r
उपनिर्देशिकाओं में पुनरावृत्ति-p
संशोधन बार संरक्षित करेंमेरा मानना है कि बाकी आइटम स्व-व्याख्यात्मक हैं
यह मेरे लिए काम करता है:
1) sftp
दूरस्थ होस्ट के माध्यम से कनेक्ट करें
2) आप जिस दूरस्थ निर्देशिका को कॉपी करना चाहते हैं, उसे बदल दें। (उदाहरण: सीडी संगीत)
3) आप जिस स्थानीय निर्देशिका में सामान की प्रतिलिपि बनाना चाहते हैं, उसे बदल दें। (उदाहरण: एलसीडी डेस्कटॉप)
4) यह आदेश जारी करें: get -r *
यदि rsync
कोई विकल्प नहीं है, तो मैं इसकी सिफारिश करूंगा lftp
:
lftp sftp://user@host.com/path/path/
फिर mirror
कमांड का उपयोग इस तरह पुन: अपलोड करने के लिए करें:
mirror -R
(ध्यान दें कि प्रत्यावर्तन डिफ़ॉल्ट है। -R
के लिए है रिवर्स - डाउनलोड करने के बजाय दर्पण आदेश अपलोड करने के लिए जोड़ने का प्रयास करें। --dry-run
यकीन है कि यह कर रहा है कि आप क्या उम्मीद करने के लिए एक परीक्षण करने के लिए।)
या पुनरावृत्ति के बिना अपलोड करने के लिए:
mirror --no-recursion
आपको cd
उन निर्देशिकाओं में जाना होगा जिन्हें आप दर्पण करना चाहते हैं। बहुत अच्छा काम करता है!
यदि आप कर सकते हैं, तो sshfs का उपयोग करें । यह एक FUSE फाइल सिस्टम है, जो अधिकांश आधुनिक यूनियनों पर उपलब्ध है, और किसी भी SFTP सर्वर के साथ काम करता है। यह एक दूरस्थ फाइल सिस्टम है: यह आपको सामान्य उपयोगिताओं के साथ दूरस्थ फाइलों (एसएफटीपी प्रोटोकॉल पर) में हेरफेर करने की अनुमति देता है।
mkdir /mount/point
sshfs server.example.com:/remote/path /mount/point
ls /mount/point
cp -Rp /mount/point/somedir /local/location
fusemount -d /mount/point
यह एक कीचड़ है, लेकिन मेरे लिए क्या काम करता है:
ssh
रिमोट मशीन में लॉगिन करने के लिए उपयोग करेंsftp
रिमोट मशीन से अपने स्थानीय मशीन का उपयोग करेंget
के -r
विकल्प के साथ कमांड का उपयोग करें।sftp> get -r data /opt/bin get: Invalid flag -r
यदि आप सवाल करते हैं कि 'मैं निर्देशिका को स्थानांतरित करने के लिए sftp का उपयोग कैसे करूं', तो
sftp -r user@server
लेकिन अगर आप एक निर्देशिका को स्थानांतरित कर रहे हैं, तो मैं आपकी आवश्यकताओं के आधार पर दो बेहतर विकल्प सुझा सकता हूं। sftp
एक ssh- जैसे कमांड प्रॉम्प्ट में दूरस्थ सर्वर में लॉग इन करने की आवश्यकता होती है, लेकिन यदि आप चाहते हैं कि फ़ाइल (s) है, तो आसान और तेज तरीके हैं।
SCP
एक बार स्थानांतरण के लिए, कोशिश अपलोड करने के लिए:
# upload source directory to remote server
scp -rp source_dir user@server:dest
#download directory from remote server:
scp -rp user@server:source_dir dest
#specifying ssh key:
scp -rp -i ~/.ssh/key user@server:source_dir dest
#remote directory has spaces
scp -rp -i ~/.ssh/key user@server:"source\\ dir" dest
rsync
यदि आप नियमित आधार पर निर्देशिकाओं को सिंक्रनाइज़ करने की योजना बनाते हैं, तो rsync का उपयोग करना अधिक समझ में आता है। यह दो निर्देशिकाओं के बीच में देरी करता है, जिससे तार पर स्थानांतरण समय और डेटा की बचत होती है।
rsync -r -a -v -e ssh --delete source_dir user@server:dest
यहाँ कुछ सबसे आम rsync विकल्पों की सूची दी गई है: ( यहाँ से लिया गया )
उम्मीद है की वो मदद करदे!
आप सर्वर से अपने स्थानीय पथ पर जा सकते हैं
scp -rp user@server:directoryname(full path) .