প্রথমত, আপনার প্রশ্নের "পুনঃসূচনা" অংশটি সম্পর্কে, --partial
প্রেরণের শেষটিকে আংশিকভাবে স্থানান্তরিত ফাইলগুলি রাখার জন্য বলছে যদি প্রেরণের শেষটি পুরোপুরি স্থানান্তরিত হয়ে যায় তবে অদৃশ্য হয়ে যায়।
ফাইল স্থানান্তর করার সময়, তারা অস্থায়ীভাবে তাদের টার্গেট ফোল্ডারগুলিতে লুকানো ফাইল (যেমন .TheFileYouAreSending.lRWzDC
) বা আপনি যদি --partial-dir
স্যুইচ সেট করেন তবে কোনও নির্দিষ্টভাবে নির্বাচিত ফোল্ডার হিসাবে অস্থায়ীভাবে সংরক্ষণ করা হয় । যখন কোনও স্থানান্তর ব্যর্থ হয় এবং --partial
সেট না করা থাকে, এই গোপন ফাইলটি এই ক্রিপ্টিক নামের অধীনে লক্ষ্য ফোল্ডারে থেকে যাবে, তবে যদি --partial
সেট করা থাকে তবে ফাইলটি প্রকৃত টার্গেট ফাইলের নামের (এই ক্ষেত্রে, TheFileYouAreSending
) নামকরণ করা হবে , যদিও ফাইলটি সম্পূর্ণ নয় মুল বক্তব্যটি হ'ল আপনি পরে আরএসসিএন দিয়ে আবার --append
বা দিয়ে চালনা করে স্থানান্তরটি সম্পূর্ণ করতে পারেন --append-verify
।
সুতরাং, নিজেই একটি ব্যর্থ বা বাতিল স্থানান্তর পুনরায় শুরু --partial
করবেন না । এটি পুনরায় শুরু করতে, আপনাকে পরবর্তী রানে উপরের উল্লিখিত পতাকাগুলির মধ্যে একটি ব্যবহার করতে হবে। সুতরাং, আপনার যদি নিশ্চিত করতে হয় যে লক্ষ্যটিতে এমন কোনও ফাইল থাকবে না যা সূক্ষ্ম বলে মনে হয় তবে বাস্তবে অসম্পূর্ণ থাকে তবে আপনার ব্যবহার করা উচিত নয় । বিপরীতভাবে, আপনি যদি নিশ্চিত করতে চান যে আপনি লক্ষ্য ডিরেক্টরিতে লুকিয়ে থাকা বিপথগামী ব্যর্থ ফাইলগুলিকে কখনও পেছনে ফেলে না রাখেন এবং আপনি জানেন যে আপনি পরে স্থানান্তরটি সম্পূর্ণ করতে সক্ষম হবেন, আপনাকে সাহায্য করার জন্য সেখানে রয়েছেন।--partial
--partial
শুভেচ্ছার সঙ্গে --append
সুইচ উপরে উল্লিখিত, এই প্রকৃত "সারসংকলন" সুইচ, এবং আপনি থাকুক বা না থাকুক আপনার কাছে ব্যবহার করছেন এটি ব্যবহার করতে পারেন --partial
। আসলে, আপনি যখন ব্যবহার করছেন তখন --append
কোনও অস্থায়ী ফাইল তৈরি হয় না। ফাইলগুলি তাদের লক্ষ্যে সরাসরি লেখা হয়। এই ক্ষেত্রে, একটি ব্যর্থ স্থানান্তর --append
হিসাবে একই ফলাফল দেয় --partial
, কিন্তু এই লুকানো অস্থায়ী ফাইল তৈরি না করে।
সুতরাং, সংক্ষেপে, যদি আপনি বড় ফাইলগুলি সরিয়ে নিয়ে যান এবং আপনি যদি বন্ধ হওয়া বা সঠিক পয়েন্ট থেকে বন্ধ হওয়া বা ব্যর্থ আরএসসিএনসি অপারেশনটি আবার শুরু করার বিকল্প চান, তবে আপনাকে পরবর্তী চেষ্টাটি rsync
ব্যবহার করতে হবে --append
বা --append-verify
স্যুইচ করতে হবে।
@ অ্যালেক্স নীচের বিষয়গুলি উল্লেখ করেছেন, যেহেতু সংস্করণ 3.0.০.০ এ rsync
এখন একটি নতুন বিকল্প রয়েছে --append-verify
, যা --append
সেই স্যুইচটির অস্তিত্বের আগে যেমন ছিল তেমন আচরণ করে । আপনি সম্ভবত সর্বদা এর আচরণ চান --append-verify
, তাই আপনার সংস্করণটি সাথে পরীক্ষা করুন rsync --version
। আপনার উপর একটি ম্যাক হন এবং ব্যবহার করছেন না এমন rsync
থেকে homebrew
, আপনি করব (অন্তত প্রয়োজন এবং সহ এল ক্যাপটেনের পর্যন্ত) একটি পুরোনো সংস্করণ আছে এবং ব্যবহার করতে হবে --append
বদলে --append-verify
। কেন তারা আচরণটি চালিয়ে --append
নিল এবং পরিবর্তে নতুনকে নামকরণ করা --append-no-verify
কিছুটা বিস্মিত। উভয় ক্ষেত্রেই, --append
উপর rsync
সংস্করণ 3 আগের মতই হয় --append-verify
নতুন সংস্করণে।
--append-verify
বিপজ্জনক নয়: এটি সর্বদা উভয় প্রান্তের ডেটা পড়তে এবং তুলনা করবে এবং কেবল এটি সমান বলে ধরে নেবে না। এটি চেকসাম ব্যবহার করে এটি করে, সুতরাং এটি নেটওয়ার্কে সহজ, তবে লক্ষ্যমাত্রায় যুক্ত হয়ে ট্রান্সফারটি পুনরায় শুরু করতে পারার আগে তারের উভয় প্রান্তে ভাগ করে নেওয়া ডেটা ভাগ করা দরকার।
সর্বোপরি, আপনি বলেছিলেন যে আপনি "শুনেছেন যে rsync উত্স এবং গন্তব্যের মধ্যে পার্থক্য খুঁজে পেতে সক্ষম, এবং তাই কেবলমাত্র পার্থক্যগুলি অনুলিপি করতে"।
এটি সঠিক, এবং একে ডেল্টা ট্রান্সফার বলা হয়, তবে এটি আলাদা জিনিস। এটি সক্ষম করতে, আপনি যোগ করুন -c
, বা --checksum
স্যুইচ করুন। এই স্যুইচটি ব্যবহার করার পরে, আরএসসিএনসি তারের উভয় প্রান্তে বিদ্যমান ফাইলগুলি পরীক্ষা করবে। এটি খণ্ডে এটি করে, উভয় প্রান্তের চেকসামগুলির সাথে তুলনা করে এবং যদি তারা পৃথক হয়, তবে এটি ফাইলের পৃথক পৃথক অংশগুলি স্থানান্তর করে। তবে, @ জোনাথন নীচের দিকে উল্লেখ করেছেন, তুলনা কেবল তখনই করা হয় যখন ফাইলগুলি উভয় প্রান্তে একই আকারের হয় - বিভিন্ন আকারের ফলে একই ফাইলের সাথে লক্ষ্যটি ওভাররাইট করে পুরো ফাইলটি আপলোড করতে rsync তৈরি করতে হবে।
প্রাথমিকভাবে উভয় প্রান্তে এটি বেশ কয়েকটি গণনা প্রয়োজন, তবে নেটওয়ার্ক লোড হ্রাস করতে অত্যন্ত দক্ষ হতে পারে উদাহরণস্বরূপ আপনি প্রায়শই খুব বড় ফাইলগুলি স্থির-আকারের ফাইলগুলিতে ব্যাক আপ করেন যা প্রায়শই ছোটখাটো পরিবর্তন থাকে। যে উদাহরণগুলি মাথায় আসে সেগুলি হ'ল ভার্চুয়াল হার্ড ড্রাইভ চিত্র ফাইলগুলি ভার্চুয়াল মেশিন বা আইএসসিএসআই লক্ষ্যগুলিতে ব্যবহৃত হয়।
এটি উল্লেখযোগ্য যে আপনি যদি --checksum
লক্ষ্য সিস্টেমে সম্পূর্ণ নতুন ফাইলগুলির একটি ব্যাচ স্থানান্তর করতে ব্যবহার করেন তবে আরএসসিএনসি তাদের ট্রান্সফার করার আগে উত্স সিস্টেমে তাদের চেকসামগুলি গণনা করবে। আমি কেন জানি না :)
সুতরাং, সংক্ষেপে:
আপনি প্রায়ই rsync ব্যবহার করেন, তাহলে মাত্র এবং চাই যে প্রক্রিয়াটি বাতিল করতে এবং পরে পুনরায় শুরু করতে, বিকল্প "B A থেকে কাপড় সরাতে" থেকে না ব্যবহার --checksum
, কিন্তু না ব্যবহার --append-verify
।
আপনি যদি প্রায়শই জিনিসগুলি ব্যাক আপ করতে rsync ব্যবহার করেন তবে --append-verify
সম্ভবত আপনার পক্ষে খুব বেশি কিছু হবে না, যদি না আপনি বড় আকারের ফাইলগুলি পাঠানোর অভ্যাস না রাখেন যা ক্রমাগত আকারে বেড়ে যায় তবে একবার লিখিত হয়ে গেলে খুব কমই পরিবর্তিত হয়। বোনাস টিপ হিসাবে, আপনি যদি এমন স্টোরেজটিতে ব্যাক আপ করেন যা স্ন্যাপশॉटিং সমর্থন করে btrfs
বা যেমন zfs
, --inplace
স্যুইচ যোগ করা আপনাকে স্ন্যাপশটের আকার হ্রাস করতে সহায়তা করবে যেহেতু পরিবর্তিত ফাইলগুলি পুনরায় তৈরি করা হয়নি বরং পরিবর্তিত ব্লকগুলি পুরানোগুলির উপরে সরাসরি লেখা রয়েছে। আপনি যদি কেবলমাত্র ছোটখাটো পরিবর্তন ঘটে থাকে তবে আপনি টার্গেটে আরএসসিএন ফাইলগুলি অনুলিপি তৈরি করা এড়াতে চাইলে এই স্যুইচটিও কার্যকর useful
ব্যবহার করার সময় --append-verify
, আরএসসিএনচ একইরকম আচরণ করবে এটি সর্বদা একই আকারের সমস্ত ফাইলগুলিতে করে। যদি তারা সংশোধন বা অন্যান্য টাইমস্ট্যাম্পগুলির মধ্যে পৃথক হয়, এটি সেই ফাইলগুলি আরও পরীক্ষা না করে উত্সের সাথে লক্ষ্যটি ওভাররাইট করে। --checksum
অভিন্ন নাম এবং আকারের প্রতিটি ফাইলের সামগ্রীর (চেকসামস) তুলনা করবে।
আপডেট হয়েছে 2015-09-01 @ অ্যালেক্সের তৈরি পয়েন্টগুলি প্রতিফলিত করতে পরিবর্তন হয়েছে (ধন্যবাদ!)
আপডেট হয়েছে 2017-07-14 @ জোনাথন দ্বারা তৈরি পয়েন্টগুলি প্রতিফলিত করতে পরিবর্তন হয়েছে (ধন্যবাদ!)