"Scp" কমান্ড ব্যবহার করে কীভাবে কেবল নতুন ফাইলগুলি অনুলিপি করবেন?


24

আমি scpকমান্ডটি ব্যবহার করে শত শত ফাইল অন্য কম্পিউটারে অনুলিপি করছিলাম যে আমি stalled ত্রুটি পেয়েছি । এখন আমি আবার ফাইলগুলি অনুলিপি করতে যাচ্ছি। ইতিমধ্যে অনুলিপি করা ফাইলগুলি অনুলিপি করার এড়ানোর কোনও উপায় আছে কি?

উত্তর:


40

আপনি rsyncএটির জন্য ব্যবহার করতে পারেন । rsyncসত্যিই এই ধরণের অপারেশনের জন্য ডিজাইন করা হয়েছে।

বাক্য গঠন:

rsync -avh /source/path/ host:/destination/path

অথবা

rsync -a --ignore-existing /local/directory/ host:/remote/directory/

আপনি যখন প্রথমবার এটি চালাবেন এটি সমস্ত সামগ্রী অনুলিপি করবে তখন এটি কেবল নতুন ফাইলগুলি অনুলিপি করবে।

আপনার যদি এসএসএইচ সংযোগের মাধ্যমে ট্র্যাফিকটি সুড়ঙ্গ করা প্রয়োজন (উদাহরণস্বরূপ, গোপনীয়তার উদ্দেশ্যে), যেমনটি আপনি সূচিতভাবে এসসিপি ভিত্তিক সমাধানের জন্য জিজ্ঞাসা করেছেন, কেবলমাত্র -e sshপ্যারামিটারগুলিতে যুক্ত করুন rsync। উদাহরণ স্বরূপ:

rsync -avh -e ssh /source/path/ host:/destination/path

হয় --ignore-existingসত্যিই প্রয়োজনীয়?
মাইসাম

কারণ ম্যানুয়াল এই উদাহরণে: rsync -t *.c foo:src/-> "এই প্যাটার্ন * মেশিন foo বিন্যাস উপর ডিরেক্টরির src বর্তমান ডিরেক্টরি থেকে গ মিলে সব ফাইল স্থানান্তর হবে। ফাইল কোন ইতিমধ্যে তখন দূরবর্তী সিস্টেমে rsync remote- উপস্থিত তাহলে আপডেট প্রোটোকলটি কেবলমাত্র পার্থক্যগুলি পাঠিয়ে ফাইল আপডেট করার জন্য ব্যবহৃত হয় "
মাইসাম

1
আমি সাধারণত ব্যবহার rsync -avuzh /source/path/ host:/destination/path। এটি সম্পূর্ণভাবে এক কমান্ডে কাজ করে এবং পরবর্তী অনুরোধগুলিতে কেবলমাত্র প্রয়োজনীয় ফাইলগুলি স্থানান্তর করে।
এডওয়ার্ড ফালক

6

আপনি যদি কোনও কারণে স্কিপ দিয়ে আটকে থাকতে চান তবে আপনি স্থানীয় ডেটাতে ডাব্লু অনুমতিগুলি সরিয়ে ফেলতে পারেন (যদি আপনার এটি করার অধিকার থাকে) এবং স্ক্রিপ এটি স্পর্শ করবে না। আরও নির্ভুল হতে:

  1. chmod a-w local/*.tar.gz (আপনার স্থানীয় দির মধ্যে)
  2. scp remote/*.tar.gz local

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


আমি এই সমাধানটি সত্যিই পছন্দ করি। আমি রিমোট সেন্সর থেকে একটি সংরক্ষণাগারে ফাইল সংগ্রহ করছি। পুরো কার্যনির্বাহী ডিরেক্টরি - প্রত্যেকটির একটি সংরক্ষণাগার সাবডির রয়েছে। ফাইলগুলি সংরক্ষণাগারে যাওয়ার পরে সেগুলি কখনই পরিবর্তন করা যাবে না। আর্কাইভ করা ফাইলগুলিকে -W হিসাবে চিহ্নিত করা সত্যিই সহজ হবে তাই আমি যা করি তা এটিই হবে। এবং সংরক্ষণাগার ডিরেক্টরিগুলির বাইরে কাজ করা ফাইলগুলি যেমন হয় তেমনি রেখে দেওয়া যায় তাই যদি আমি দিনের বেলা আপডেট প্রোগ্রামটি চালিত করি তবে এটি এখনও অগ্রগতির ফাইলগুলি অনুলিপি করবে। এটি ঠিক আমি যা খুঁজছিলাম is টিএনএক্স অনেক!
এসডসোলার

4

এসসিপি দিয়ে এটি কীভাবে করা যায় তার সঠিক কোনও উত্তর নেই, যেহেতু মূল প্রশ্নটিই এটিই জিজ্ঞাসা করছিল।

sudo find /files/ -type f -exec chmod a-w {} \;

scp -r username@server.com:/file/location/* /files

ফাইলগুলি অনুলিপি করা শেষ হয়ে গেলে অনুমতিগুলি ফিরে পান:

sudo chmod a+w -R /files


1
ঠিক আছে, তর্কযোগ্যভাবে, আসল প্রশ্নটি ছিল "আমি কীভাবে এই সমস্যাটি সমাধান করতে পারি", যার উত্তর হল rsync।
এডওয়ার্ড ফালক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.