ব্যাচ মোড সম্পর্কে rsync এর জন্য ম্যান পৃষ্ঠা থেকে এখানে তথ্য দেওয়া আছে।
মোড
অনেক অভিন্ন সিস্টেমে একই সেট আপডেট করতে ব্যাচ মোড ব্যবহার করা যেতে পারে। মনে করুন যে একটিতে একটি গাছ রয়েছে যা বেশ কয়েকটি হোস্টে প্রতিলিপি করা হয়। এখন ধরুন এই উত্স ট্রিটিতে কিছু পরিবর্তন হয়েছে এবং সেই পরিবর্তনগুলি অন্য হোস্টগুলিতে প্রচার করা দরকার। ব্যাচ মোডটি ব্যবহার করে এটি করার জন্য, সোর্স ট্রিতে করা পরিবর্তনগুলি গন্তব্য গাছের একটিতে প্রয়োগ করতে রাইটিং-ব্যাচ বিকল্পের সাহায্যে আরএসসিএনসি চালানো হয়। লিখন-ব্যাচ বিকল্পের ফলে আরএসআইএনএইচ ক্লায়েন্টকে "ব্যাচ ফাইল" এ অন্যান্য, অভিন্ন গন্তব্য গাছগুলির বিরুদ্ধে এই ক্রিয়াকলাপটি পুনরাবৃত্তি করার জন্য প্রয়োজনীয় সমস্ত তথ্য সংরক্ষণ করে।
একাধিক গন্তব্য গাছ আপডেট করার সময় একবার ব্যাচ ফাইল তৈরি করা ফাইল স্থিতি, চেকসাম এবং ডেটা ব্লক জেনারেশন সম্পাদন করে ves মাল্টিস্টাস্ট ট্রান্সপোর্ট প্রোটোকলগুলি পৃথকভাবে প্রতিটি হোস্টে একই ডেটা প্রেরণের পরিবর্তে বহু হোস্টের সমান্তরালে ব্যাচ আপডেট ফাইলগুলি স্থানান্তর করতে ব্যবহার করা যেতে পারে।
অন্য গন্তব্য ট্রিতে রেকর্ডকৃত পরিবর্তনগুলি প্রয়োগ করতে, একই ব্যাচের ফাইলের নাম এবং গন্তব্য গাছের উল্লেখ করে রিড-ব্যাচ বিকল্পের সাথে rsync চালান। Rsync ব্যাচ ফাইলে সঞ্চিত তথ্য ব্যবহার করে গন্তব্য ট্রি আপডেট করে।
আপনার সুবিধার জন্য, লিখন-ব্যাচ বিকল্পটি ব্যবহার করা হলে একটি স্ক্রিপ্ট ফাইলও তৈরি করা হয়: "ব্যাটার ফাইল হিসাবে এটি" .sh "যুক্ত করে নামকরণ করা হবে। এই স্ক্রিপ্ট ফাইলটিতে সম্পর্কিত ব্যাচ ফাইলটি ব্যবহার করে একটি গন্তব্য ট্রি আপডেট করার জন্য উপযুক্ত একটি কমান্ড-লাইন রয়েছে। এটি একটি বোর্ন (বা বোর্ন-জাতীয়) শেল ব্যবহার করে কার্যকর করা যেতে পারে, বিকল্পভাবে একটি গন্তব্য গাছের পথের নাম দিয়ে যা যা মূল গন্তব্যের পাথের পরিবর্তে ব্যবহৃত হয়। এটি দরকারী যখন বর্তমান হোস্টের গন্তব্য গাছের পথটি ব্যাচ ফাইল তৈরির জন্য ব্যবহৃত ব্যবস্থার থেকে পৃথক হয়।
Examples:
$ rsync --write-batch=foo -a host:/source/dir/ /adest/dir/
$ scp foo* remote:
$ ssh remote ./foo.sh /bdest/dir/
$ rsync --write-batch=foo -a /source/dir/ /adest/dir/
$ ssh remote rsync --read-batch=- -a /bdest/dir/ <foo
এই উদাহরণগুলিতে, rsync আপডেট / অ্যাডেস্ট / দির / থেকে / উত্স / দির / ব্যবহার করতে ব্যবহৃত হয় এবং এই ক্রিয়াকলাপটির পুনরাবৃত্তি করার তথ্য "foo" এবং "foo.sh" এ সংরক্ষণ করা হয়। হোস্ট "রিমোট" তারপরে ব্যাচযুক্ত ডেটা ডিরেক্টরি / বিডেস্ট / ডিরের সাথে আপডেট করা হয়। দুটি উদাহরণের মধ্যে পার্থক্যগুলি আপনি ব্যাচগুলির সাথে কীভাবে আচরণ করেন তাতে কিছুটা নমনীয়তা প্রকাশ করে:
প্রথম উদাহরণটি দেখায় যে প্রারম্ভিক অনুলিপি স্থানীয় হতে হবে না - আপনি রিমোট শেল সিনট্যাক্স বা আরএসসিএনএইচ ডেমন সিনট্যাক্সটি পছন্দসইভাবে ব্যবহার করে দূরবর্তী হোস্টে / থেকে ডেটা চাপতে বা টানতে পারেন।
প্রথম উদাহরণটি দূরবর্তী হোস্টে রিড-ব্যাচ কমান্ডটি চালনার সময় সঠিক আরএসসিএনসি বিকল্পগুলি পেতে তৈরি "foo.sh" ফাইলটি ব্যবহার করে।
দ্বিতীয় উদাহরণটি স্ট্যান্ডার্ড ইনপুটটির মাধ্যমে ব্যাচের ডেটা পড়বে যাতে ব্যাচ ফাইলটি প্রথমে রিমোট মেশিনে অনুলিপি করার প্রয়োজন হয় না। এই উদাহরণটি foo.sh স্ক্রিপ্ট এড়িয়ে চলেছে কারণ এটি পরিবর্তিত - রিড-ব্যাচের বিকল্পটি ব্যবহার করার প্রয়োজন ছিল, তবে আপনি যদি স্ক্রিপ্ট ফাইলটি ব্যবহার করতে চান তবে এটি সম্পাদনা করতে পারবেন (কেবলমাত্র নিশ্চিত হন যে অন্য কোনও বিকল্প স্ট্যান্ডার্ড ব্যবহারের চেষ্টা করছে না ইনপুট, যেমন "--exclude-from = -" বিকল্প)।
আদেশ সহকারে:
রিড-ব্যাচ বিকল্পটি গন্তব্য গাছটিকে প্রত্যাশা করে যে এটি গন্তব্য গাছের সাথে সমান হতে আপডেট করে যা ব্যাচ আপডেট ফাইলসেট তৈরি করতে ব্যবহৃত হয়েছিল। যখন দেশীয় জাতের গাছের মধ্যে পার্থক্যের মুখোমুখি হয় তখন আপডেটটি একটি সতর্কতা দিয়ে বাতিল করা যেতে পারে (যদি ফাইলটি ইতিমধ্যে আপ-টু-ডেট বলে মনে হয়) বা ফাইল-আপডেটের চেষ্টা করা যেতে পারে এবং যদি ফাইলটি যাচাই করতে ব্যর্থ হয় আপডেটটি ত্রুটিযুক্তভাবে বাতিল করা হয়েছে। এর অর্থ হ'ল কমান্ডটি বিঘ্নিত হয়ে গেলে পঠন-ব্যাচের ক্রিয়াকলাপটি পুনরায় চালানো নিরাপদ হওয়া উচিত। আপনি যদি ফাইলের আকার এবং তারিখ নির্বিশেষে ব্যাচড-আপডেট সর্বদা চেষ্টা করার জন্য জোর করতে চান তবে -I বিকল্পটি (ব্যাচটি পড়ার সময়) ব্যবহার করুন। যদি কোনও ত্রুটি দেখা দেয় তবে গন্তব্য গাছটি সম্ভবত আংশিক আপডেট হওয়া অবস্থায় থাকবে। এই ক্ষেত্রে,
সমস্ত গন্তব্যগুলিতে ব্যবহৃত আরএসসিএনসি সংস্করণটি ব্যাচ ফাইল তৈরি করতে ব্যবহৃত হিসাবে কমপক্ষে নতুন হওয়া উচিত। ব্যাচ-ফাইলের প্রোটোকল সংস্করণ যদি ব্যাচ-রিডিং আরএসসিএনসি হ্যান্ডেল করার জন্য খুব নতুন হয় তবে রাইঙ্ক একটি ত্রুটির সাথে মারা যাবে। কোনও পুরানো আরএসসিএনসি বুঝতে পারে এমন একটি ব্যাচ ফাইল তৈরি করার পদ্ধতি তৈরির জন্য একটি উপায়ের জন্যও - প্রোটোকল বিকল্পটি দেখুন। (নোট করুন যে ব্যাচ ফাইলগুলি ২.6.৩ সংস্করণে ম্যাটের জন্য পরিবর্তিত হয়েছে, সুতরাং নতুন সংস্করণগুলির চেয়ে পুরানো সংস্করণগুলি মিশ্রণ কার্যকর হবে না))
ব্যাচ ফাইলটি পড়ার সময়, আরএসআইএনসি ব্যাচ ফাইলের ডেটা মেলে নির্দিষ্ট বিকল্পগুলির মানকে বাধ্য করবে যদি আপনি সেগুলি ব্যাচ-রাইটিং কমান্ডের মতো না করে থাকেন। অন্যান্য বিকল্পগুলি (এবং হওয়া উচিত) পরিবর্তন করা যেতে পারে। উদাহরণস্বরূপ - রাইড-ব্যাচে পরিবর্তন - র্যাড-ব্যাচে, - ফাইলস-থেকে বাদ পড়েছে এবং - - ফিলিটার / - অন্তর্ভুক্ত / - বাদ দেওয়া বিকল্পগুলির প্রয়োজন হয় না যতক্ষণ না --ডিলেট বিকল্পগুলির একটি নির্দিষ্ট না করা হয় ।
BATCH.sh ফাইল তৈরি করে এমন কোডটি যে কোনও ফিল্টারকে / অন্তর্ভুক্ত / বাদ দেওয়ার বিকল্পগুলিকে শেল স্ক্রিপ্ট ফাইলটিতে "এখানে" নথি হিসাবে সংযুক্ত করা হয়েছে এমন একক তালিকায় রূপান্তর করে। উন্নত ব্যবহারকারী এইটিকে বাদ দিয়ে তালিকার সংশোধন করতে ব্যবহার করতে পারেন - যদি ডেলিট দ্বারা মুছে ফেলা হয় এমন কোনও পরিবর্তন চান। একটি সাধারণ ব্যবহারকারী এই বিশদটি উপেক্ষা করতে পারেন এবং ব্যাচযুক্ত ডেটার জন্য উপযুক্ত --্রেড-ব্যাচ কমান্ড চালানোর সহজ উপায় হিসাবে শেল স্ক্রিপ্টটি ব্যবহার করতে পারেন।
আরএসআইএনসি-তে মূল ব্যাচ মোড "আরএসসিএনসি +" ভিত্তিক ছিল তবে সর্বশেষতম সংস্করণটি একটি নতুন বাস্তবায়ন ব্যবহার করে।
আমি ভাবতে পারি আপনি চেষ্টা করতে পারেন
rsync --write-batch=foo -Pav /junk user@host1:/backup
foo.sh user@host2:/backup
foo.sh user@host3:/backup
remote destination is not allowed with --read-batch