এক কমান্ড দিয়ে একাধিক ডিরেক্টরিতে Rsync?


8

আমি আমার ওয়ার্কিং ডিরেক্টরিটি আরও দুটি ডিরেক্টরিতে সংযুক্ত করতে চাই। একটি গন্তব্য ব্যাকআপ জন্য হবে, অন্য এটি পরীক্ষা করার জন্য। আমি এটি চেষ্টা করেছি:

rsync -av --exclude='.git' source dest1,dest2

তবে আমি ত্রুটি পাই - 'dest1,dest2'ডিরেক্টরিটি পাওয়া যায় নি। সুতরাং দেখে মনে হচ্ছে এটি এটিকে এক ডিরেক্টরি পথ হিসাবে দেখে। অবশ্যই আমি বিভিন্ন গন্তব্য ডিরেক্টরি সহ দু'বার কমান্ড চালাব, তবে এটি যুক্ত হয়ে যায় এবং আমি সর্বদা একাধিক কমান্ড ব্যবহার না করেই RSSync করতে চাই।

এভাবে কি কিছু করা সম্ভব?

উত্তর:


3

সম্ভবত একটি forলুপ ব্যবহার করুন :

for dest in dest1 dest2; do 
    rsync -av --exclude='.git' source $dest
done

1
এই পদ্ধতিটি rsync এর জন্য বেশ কয়েকটি আউটপুট দেয়।
চেনমিং জাং

1
-1 কারণ এগুলি দুটি কমান্ড ("আরএসসিএন ... ডেসট 1" এবং "আরএসসিএন ... ডেসট 2") এবং প্রশ্নের অনুরোধ হিসাবে একটি নয়।
ড্যানিয়েল.নুমান

2

লুপ সমাধানের জন্য প্রস্তাবিতগুলি কাজ করে তবে আপনি যদি প্রচুর পরিমাণে ডেটা স্থানান্তর করেন তবে এটি খুব ধীর হবে। এর কারণ এটি কাজগুলিকে সিরিয়ালাইজ করে যা ডিস্ক-লেখার গতির সাথে আবদ্ধ। আরও ভাল তবে কিছুটা জটিল বিকল্প হ'ল জিএনইউ সমান্তরাল ব্যবহার করা:

http://www.gnu.org/software/parallel/

একাধিক আরএসসিএন রানকে সমান্তরাল করার জন্য আপনি একটি কমান্ড নিয়ে আসতে পারেন, যদি আপনি একই সময়ে এন ডিস্কগুলিতে লিখছেন তবে এটি N গুণ বেশি দ্রুত হবে।

নেটওয়ার্ক-বাঁধা সমস্যার জন্য অনুরূপ সমান্তরাল সমাধান এখানে দেওয়া হল:

https://stackoverflow.com/questions/24058544/speed-up-rsync-with-simultaneous-concurrent-file-transfers


1
সমান্তরাল কী অতিরিক্ত ডিস্ক পড়ার যত্ন নেবে? আমি 1 টি ডিভাইস থেকে পড়তে এবং 20 টিতে অন্য বিষয়বস্তু অনুলিপি করতে চাই। একই তথ্য 20 বার পড়ার দরকার নেই, আমি অবাক হয়েছি যে এটি অর্জন করার কোনও উপায় আছে কিনা। আমি জানি যে ডিসি 3 ডিডি (ডিডি-র একটি পরিবর্তিত সংস্করণ) একক পঠনের সমান্তরালে একাধিক গন্তব্যগুলিতে পড়তে এবং লিখতে পারে তবে ডিরেক্টরিগুলি অনুলিপি করার জন্য এটি খুব সুবিধাজনক নয়। যদিও ডিস্ক চিত্রগুলির জন্য দুর্দান্ত কাজ করবে।
আনফা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.