উত্তর:
আপনি 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
rsync -t *.c foo:src/
-> "এই প্যাটার্ন * মেশিন foo বিন্যাস উপর ডিরেক্টরির src বর্তমান ডিরেক্টরি থেকে গ মিলে সব ফাইল স্থানান্তর হবে। ফাইল কোন ইতিমধ্যে তখন দূরবর্তী সিস্টেমে rsync remote- উপস্থিত তাহলে আপডেট প্রোটোকলটি কেবলমাত্র পার্থক্যগুলি পাঠিয়ে ফাইল আপডেট করার জন্য ব্যবহৃত হয় "
rsync -avuzh /source/path/ host:/destination/path
। এটি সম্পূর্ণভাবে এক কমান্ডে কাজ করে এবং পরবর্তী অনুরোধগুলিতে কেবলমাত্র প্রয়োজনীয় ফাইলগুলি স্থানান্তর করে।
আপনি যদি কোনও কারণে স্কিপ দিয়ে আটকে থাকতে চান তবে আপনি স্থানীয় ডেটাতে ডাব্লু অনুমতিগুলি সরিয়ে ফেলতে পারেন (যদি আপনার এটি করার অধিকার থাকে) এবং স্ক্রিপ এটি স্পর্শ করবে না। আরও নির্ভুল হতে:
chmod a-w local/*.tar.gz
(আপনার স্থানীয় দির মধ্যে)scp remote/*.tar.gz local
এটি খুব দক্ষ, দুর্দান্ত নয় তবে স্কিপ ব্যতীত অন্য কিছু না বদলে দ্রুত অস্থায়ী সমাধানের প্রয়োজন হলে আপনাকে সাহায্য করতে পারে। (কুদোস: গন্তব্যে বিদ্যমান ফাইলগুলি প্রতিস্থাপন না করে scp )
এসসিপি দিয়ে এটি কীভাবে করা যায় তার সঠিক কোনও উত্তর নেই, যেহেতু মূল প্রশ্নটিই এটিই জিজ্ঞাসা করছিল।
sudo find /files/ -type f -exec chmod a-w {} \;
scp -r username@server.com:/file/location/* /files
ফাইলগুলি অনুলিপি করা শেষ হয়ে গেলে অনুমতিগুলি ফিরে পান:
sudo chmod a+w -R /files
--ignore-existing
সত্যিই প্রয়োজনীয়?