Sftp এ কীভাবে আমি একটি সম্পূর্ণ ডিরেক্টরি পেতে পারি?


189

আমি কেবল sftp ব্যবহার করতে শিখছি, এবং আমি দূরবর্তী কম্পিউটার থেকে আমার স্থানীয় কম্পিউটারে একটি ডিরেক্টরি অনুলিপি করতে চাই। যদি আমি চেষ্টা করি

get [directory]

এটি আমাকে এই ত্রুটি দেয়:

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

get -R হয় না, কাজ করে না।


2
রিকার্সিভ পুট / গেট ওপেনএসএসএইচে 5.4 এ যুক্ত হয়েছিল, যা 2010 সালে প্রকাশিত হয়েছিল You আপনি আপনার সার্ভারগুলি আপগ্রেড করার বিষয়টি বিবেচনা করতে পারেন কারণ এতে প্রচুর বাগ ফিক্স এবং আরও ভাল সুরক্ষা বৈশিষ্ট্য যুক্ত করা হয়েছে।
লস ম্যাজেস্টে

উত্তর:


265

-r(পুনরাবৃত্ত) পতাকাটি ব্যবহার করুন :

get -r *

16
একটি উত্তর দেওয়ার জন্য ধন্যবাদ যা আসলে প্রশ্নের উত্তর দেয়।
jonnyflash

30
আমাকে দেয়:get: Invalid flag -r
21 শে 21 '21-এ

2
এটি আমাকে অবৈধ পতাকাও দেয়। আমি নিশ্চিত নই যে এটি সমস্ত সিস্টেমে সমর্থিত।
বেন

@ বেন: ২০০৯ সালে যখন আমি এই প্রশ্নটি জিজ্ঞাসা করি তখন -rপতাকাটির অস্তিত্ব ছিল না। আপনার সিস্টেম আপ টু ডেট আছে?
ম্যাথু

15
@ সিলভিনসি সমস্ত বর্তমান সিস্টেম নয়। CentOS 6.4 ওপেনশ-ক্লায়েন্ট -5.3p1-84.1.el6.x86_64- এর সাথে অবৈধ বিকল্প
ক্র্যাকারজ্যাক 9

52

ব্যবহার করুন:

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

3
এটি কাজ করে তবে এসএফটিপি থেকে এটি করতে পেরে ভাল লাগবে (যাতে আমি এটি অনুলিপি করার আগে আমি কী অনুলিপি করতে পারি তা দেখতে পারি)। এটা কি সম্ভব?
ম্যাথু

@ ম্যাথিউ: আমার মনে হয় না। আমি নিজেকে কিছু সময় ধরে একই প্রশ্ন জিজ্ঞাসা করছি এবং এই মুহুর্তে আমার কাছে সবচেয়ে ভাল উত্তর scp -r। অথবা আপনি ফাইলজিলার মতো উন্নত এসএফটিপি ক্লায়েন্ট ব্যবহার করতে পারেন।
ক্রিশ্চিয়ান সিউপিতু

1
scp -r
symlinks

5
কিছু সিস্টেম অনুমতি দিতে পারে sftp, কিন্তু scpঅ্যাক্সেস করতে পারে না ।
ট্যুরিওন

40

ব্যবহার lftp:

lftp sftp://user@host

তারপরে, lftp- র মধ্যে, cdআপনি যে ডিরেক্টরিটি অনুলিপি করতে চান তার মধ্যে mirrorএবং বার বার নির্বাচিত ডিরেক্টরিটি ডাউনলোড করার জন্য কমান্ডটি ব্যবহার করুন :

mirror

এই কমান্ডটি বিকল্প এবং যুক্তি স্বীকার করে:

আয়না [ বিকল্প ]] [ উত্স [ লক্ষ্য ]]

উদাহরণস্বরূপ, -R(বা --reverse) বিকল্পের ফলে এটি স্থানীয় ডিরেক্টরি গাছটিকে দূরবর্তী ডিরেক্টরিতে আপলোড করতে পারে:

mirror -R

অন্যান্য কমান্ড এবং বিকল্পগুলির জন্য প্রকল্পের সাইটে বা ডেবিয়ান.আরগেlftp(1) ম্যান পৃষ্ঠাটি দেখুন ।


4
+1 এলএফটিপিটি যাদু এবং আনন্দের সামান্য বান্ডিলের মতো!
WCWedin

16

এই ছোট্ট গাইডটির সাহায্য করা উচিত, এলএফটিপি দিয়ে স্থানীয় ফোল্ডারে একটি দূরবর্তী সার্ভারটি মিরর করুন

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

আশা করি এটি যে কোনও একটি স্থানীয় ফোল্ডারে রিমোট ফোল্ডারটি আয়না করতে সহায়তা করে


ধন্যবাদ, অন্যান্য পদ্ধতিগুলি ব্যর্থ হওয়ার পরে এটি আমার পক্ষে কাজ করেছে (বিশেষত sftp এ "-r" বিকল্প নেই)। পাসওয়ার্ডে ডলার অক্ষরের কারণে আমার ক্ষেত্রে কমান্ডের প্রথম অংশটি উদ্ধৃত করা দরকারlftp 'sftp://user:pa$$word@server.org:22' -e 'mirror --verbose --use-pget-n=8 -c /remote/path /local/path'
জেসন

15

আপনি আরও ভাল কিছু পেতে পারলে সরাসরি এসএফটিপি প্রোগ্রামটি ব্যবহার করবেন না। লিনাক্সের জন্য অনেকগুলি ফাইল ম্যানেজার (কমপক্ষে নটিলাস এবং ডলফিন, জিনোম এবং কে-ডি-কে) হ'ল এসএফটিপি স্থানীয়ভাবে সমর্থন করে এবং সবসময় এসএসএফএস থাকে। উইন্ডোজের জন্য উইনসিসিপি রয়েছে এবং সম্ভবত অন্যরাও আছেন । এই সমস্তগুলির মুল বক্তব্য হ'ল আপনাকে এসফটিপি-র মাধ্যমে ফাইলগুলি অ্যাক্সেস করতে দেওয়া যেন সেগুলি নিয়মিত ফাইলসাইমগুলিতে থাকে, সুতরাং আপনাকে সেফটিপি-র মাধ্যমে অ্যাক্সেস করতে হবে সেদিকে খেয়াল রাখতে হবে না।


বাহ, নটিলাস এসএফটিপি দিয়ে খুব ভাল কাজ করে। আমি নটিলাসে একটি বুকমার্ক যুক্ত করেছি এবং এখন এটি সব হাস্যকরভাবে সহজ। ধন্যবাদ!
ম্যাথু

নটিলাস এসএফটিপি-র সাথে আমার পারফরম্যান্স সমস্যা রয়েছে। হ্যাঁ, এটি সত্যিই সুবিধাজনক তবে আমি নটিলাসের মাধ্যমে 1 গিগাবাইট / গুলি নেটওয়ার্ক পরিপূর্ণ করতে সক্ষম হইনি, যখন sftp/sshআমি সরল কমান্ড লাইন ইন্টারফেসের সাথে ছিলাম (সিসিএ 100 এমবি / গুলি ফাইল স্থানান্তর)। সুতরাং ইস্যুটি ছিল জিএনইউ / লিনাক্স মিন্টে নটিলাস।
স্ট্যামস্টার

13

mgetপরিবর্তে চেষ্টা করুন get

স্পেসিফিকেশন: আপনি যে ডিরেক্টরিটি অনুলিপি করতে চান তার ভিতরে থাকলে কাজ mget করবে ; আপনি যদি এরকম কিছু করেন:

sftp> cd dir_to_get
sftp> mget *

এটি সেই ডিরেক্টরিতে সমস্ত ফাইল পাবে। যাইহোক, এটা হবে না যাও recursively কোনো সাবডিরেক্টরি বিষয়বস্তু পেতে।


1
mget আমার জন্য পাওয়ার চেয়ে ভাল কাজ করে না।
ম্যাথু


1
এটি আমার জন্য এমন সিস্টেমে কাজ করেছিল যেখানে 'get -r' কাজ করে না।
টিচোচকে

10
get -r [directory]

পায় [directory]এবং এর অধীনে সমস্ত কিছুই, যেখানে rপুনরাবৃত্তির জন্য দাঁড়িয়ে। আমি এটি টাইপ করে helpপেয়েছি sftp


1
আইএমও এটি এই প্রশ্নের সেরা উত্তর। :)
ramrunner

3
এটি একটি অনুরূপ উত্তর থেকে নভেম্বর 29 '10 (প্রায় এক বছর এবং একটি অর্ধ আগে)।
ক্রিশ্চিয়ান সিপিতু

5

যেমন cp:

scp -rp user@host:/path/to/dir dir

উপরেরগুলি মূল ফাইল এবং উপ-ডিরেক্টরিগুলির সময় এবং মোডগুলি সংরক্ষণ করবে। এটি ব্যাকআপগুলি পুনরুদ্ধারের জন্য বিশেষভাবে কার্যকর।


এটি মূলত 29 নভেম্বর '10 (প্রায় দুই বছর আগে) থেকে একটি উত্তরের সদৃশ ।
ক্রিশ্চিয়ান সিপিতু

0

আমার কাছে দূরবর্তী সার্ভারে জাভা ডিস ফোল্ডার রয়েছে, যেখানে আমার নীচের গাছ রয়েছে:

- dist
--- Audio.jar
--- README
--- lib
----- lib.jar

লক্ষ্যটি হল: আমি এসএফটিপি ব্যবহার করতে চাই? এবং এগুলিকে / tmp / <> এ দিন

পদক্ষেপ 1. sftp রিমোট ব্যবহারকারীর @ আইপি

পদক্ষেপ 2. সিডি / ভার / টিএমপি

পদক্ষেপ 2. lmkdir / tmp / dist; lmkdir / tmp / dist / lib

পদক্ষেপ 3. lcd / tmp / dist

পদক্ষেপ ৪।

পদক্ষেপ 5. lcd / tmp / dist / lib

পদক্ষেপ 6. mget *

পদক্ষেপ finally. অবশেষে আমার লক্ষ্য আছে

$ ls
Audio.jar  lib  README.TXT
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.