উত্তর:
হ্যাঁ, ব্যবহার করুন -r
:
scp -rp sourcedirectory user@dest:/path
দ্রষ্টব্য: এটি ফাইলটি sourcedirectory
ভিতরে থাকবে /path
এইভাবে এটি তৈরি করে/path/sourcedirectory
-pr
করুন (বিপরীত ক্রমের বিকল্পগুলি) ফোল্ডারগুলি অনুলিপি করবে না, বরং তাদের বিষয়বস্তু লক্ষ্য ডিরেক্টরিতে (স্পষ্টতই, বিকল্পগুলির ক্রমটি বিবেচনা করবে) bur
পূর্ববর্তী উত্তরগুলি প্রযুক্তিগতভাবে সঠিক হলেও এর rsync
পরিবর্তে আপনার ব্যবহারের বিষয়টিও বিবেচনা করা উচিত । rsync
প্রেরণ এবং প্রাপ্ত পক্ষের উপাত্তগুলিকে একটি পৃথক ব্যবস্থার সাথে তুলনা করে যাতে ইতিমধ্যে প্রেরিত ডেটা পুনরায় পাঠাতে হয় না।
আপনি যদি রিমোট মেশিনে একাধিকবার অনুলিপি করতে চলেছেন তবে ব্যবহার করুন rsync
। প্রকৃতপক্ষে, rsync
প্রতিবার ব্যবহার করা ভাল কারণ এতে ফাইলের অনুমতি এবং মালিকানা অনুলিপি করা এবং নির্দিষ্ট ফাইল বা ডিরেক্টরি বাদ দেওয়ার মতো বিষয়গুলির আরও নিয়ন্ত্রণ রয়েছে। সাধারণভাবে:
$ rsync -av /local/dir/ server:/remote/dir/
একটি স্থানীয় ডিরেক্টরি একটি দূরবর্তী ডিরেক্টরি সহ সিঙ্ক্রোনাইজ করবে। আপনি যদি এটি দ্বিতীয়বার চালনা করেন এবং স্থানীয় ডিরেক্টরিগুলির বিষয়বস্তুগুলি পরিবর্তিত হয় না, কোনও ডেটা স্থানান্তরিত হবে না - scp
প্রতিবার চালানো এবং অনুলিপি করার চেয়ে অনেক বেশি দক্ষ ।
এছাড়াও, rsync
আপনাকে খুব সহজেই বাধা স্থানান্তর থেকে পুনরুদ্ধার করতে দেয়, বিপরীতে scp
।
অবশেষে, rsync
ডিফল্টরূপে আধুনিক সংস্করণগুলি ssh ওভারে রান করে, সুতরাং যদি scp
ইতিমধ্যে কাজ করা হয় তবে rsync
বেশিরভাগই একটি ড্রপ-ইন প্রতিস্থাপন হওয়া উচিত।
rsync
আরও দক্ষ। এটি বর্তমানে এটি করে না এমন একটি কাজ scp
হ'ল দূরবর্তী হোস্টগুলির মধ্যে অনুলিপি করা (কমপক্ষে কোনও একটিতে আরএসসিএন ক্লায়েন্ট না চালিয়ে)।
-av
: ভি ভার্বোজের জন্য, আর্কাইভের জন্য এবং এটি একটি শর্টকাট যা -আরলপ্টগোডির পুনরাবৃত্তিকে বোঝায়, অধিকারের মালিকের তারিখ এবং লিঙ্ক সংরক্ষণ করে। আপনি যদি কেবল পুনরাবৃত্ত ব্যবহার করতে চান-r
-r
বিকল্প এটি কি জন্য। :)
দেখুন scp কমান্ড man পৃষ্ঠা প্রয়োজনে আরও তথ্যের জন্য।
পুনরাবৃত্তির অনুলিপি বিকল্প '-আর' (লোয়ার কেস)
scp -r
যা আমি নিয়মিত স্থানীয় পুনরাবৃত্তির অনুলিপি বিকল্প '-আর' (আপার কেস) দিয়ে বিভ্রান্ত করি
cp -R
সবচেয়ে ভাল উপায় হ'ল এসএসএইচ এর মাধ্যমে আরএসসিএনসি ব্যবহার করা
rsync -a -essh /source/ user@dest-server:/dest/
rsync -a -essh user@source-server:/source/ /dest/
আমার পছন্দের বিকল্পগুলি হ'ল -পাভেভিশ - মুছে ফেলা:
rsync
আমি যে সমস্ত সংস্করণ ব্যবহার করেছি সেগুলি ssh
ডিফল্টরূপে ব্যবহার করবে , সুতরাং -essh
এটির প্রয়োজনের সম্ভাবনা নেই। এবং দূরবর্তী হোস্টের সাথে সংযোগ করতে ব্যবহৃত কমান্ডের পছন্দটি পুনরাবৃত্তভাবে অনুলিপি করার সাথে সম্পর্কিত নয়।
পুনরাবৃত্তিযোগ্য অনুলিপি পতাকাটি সন্ধান করার পরে এবং এই পোস্টটির জন্য এটি সফলভাবে ব্যবহার করে, আমি কেবল একটি পরামর্শ পোস্ট করতে চাই।
যদি কেসটি হয় যে আপনি একটি ডিরেক্টরি অনুলিপি করছেন (পুনরাবৃত্তভাবে)। যদি ফাইলগুলি সংকুচিত করা হয় তবে আপনি স্থানান্তরটিতে সময় সাশ্রয় করতে পারেন
শেষ পর্যন্ত যা করেছি তা হ'ল:
local$ tar -czvf local.tar.gz directory/
local$ scp local.tar.gz user@remote:/directory
ssh user@remote
remote$ tar -xzvf local.tar.gz
আশাকরি এটা সাহায্য করবে
.tar.gz
বা .tgz
যেহেতু ফাইলটি একটি জিজিপড টার সংরক্ষণাগার (যেহেতু -z
পতাকা ব্যবহৃত হয়)।
আপনি এই সাধারণ কমান্ডের সাহায্যে সংক্ষেপিত সংরক্ষণাগারে একটি ডিরেক্টরিকে পুনরাবৃত্তভাবে অনুলিপি করতে পারেন:
ssh -p 22 user@address-to-copy-from.com 'cd /parent/directory && tar zcvf - directory_to_copy' > /destination/on/your/machine/archive_name.tgz
উদাহরণস্বরূপ, বিষয়বস্তু কপি করার /var/log
থেকে domain.com
থেকে ~/logs.tgz
আপনি চালাতে:
ssh -p 22 user@domain.com 'cd /var && tar zcvf - log' > ~/logs.tgz
আপনি পাইপ ব্যবহার করে লক্ষ্য সিস্টেমে ফাইলগুলিও বের করতে পারেন। এই কমান্ডের বিষয়বস্তু কপি হবে /var/log
এ domain.com
থেকে ~/destination/log
আপনার সিস্টেমে:
ssh -p 22 user@domain.com 'cd /var && tar zcvf - log' | tar xzf - -C ~/destination
ডিরেক্টরিটি আয়না করা হলেও আপনার সম্ভবত ব্যবহার করা উচিত rsync
...
যদি আপনি ব্যবহারকারীর পাসওয়ার্ডটিকে ইন্টারেক্টিভভাবে ইনপুট করার পরিবর্তে প্যারামিটার হিসাবে পাস করতে পছন্দ করেন তবে আপনি sshpass
( sudo apt-get install -y sshpass
) ব্যবহার করতে পারেন ।
উদাহরণ:
sshpass -p 'remote_password' scp -rp /src/folder myremoteusername@122.10.12.123:/dest/folder
যে কোনও সিস্টেমে ডিরেক্টরিগুলি অনুলিপি করার জন্য আপনি scp কমান্ড সহ -r বিকল্পটি ব্যবহার করতে পারেন। আপনার যদি অন্য কিছু প্রয়োজন হয় তবে scp কমান্ড টিউটোরিয়ালটি দেখুন । -r বিকল্পটি লিনাক্স কমান্ডের বেশিরভাগ ক্ষেত্রে পুনরাবৃত্ত অপারেশনকে বোঝায়।
-r
বিকল্পটি ইতিমধ্যে কয়েক বছর আগে প্রস্তাবিত হয়েছিল এবং এটি গ্রহণযোগ্য উত্তর।
আর একটি (বারবার ব্যবহারের জন্য সম্ভবত আরও ভাল) বিকল্পটি হ'ল এনএফএস ব্যবহার করা - এনএফএস-কার্নেল-সার্ভার এবং কীভাবে এনএফএস শেয়ার সেটআপ করতে হয় তা পরীক্ষা করে দেখুন।
scp
তবে এনএফএস কোনও বিকল্প নয়।