বাধা হয়ে যাওয়ার পরে আরএসএনসি কি আবার চালু করা যায়?


187

আমি rsyncপ্রচুর সংখ্যক ফাইল অনুলিপি করতাম তবে আমার ওএস (উবুন্টু) অপ্রত্যাশিতভাবে পুনরায় চালু হয়েছিল।

পুনরায় বুট করার পরে, আমি rsyncআবার দৌড়েছি , কিন্তু টার্মিনালের আউটপুট থেকে, আমি দেখতে পেয়েছি যে rsyncইতিমধ্যে অনুলিপি করা হয়েছে এমনগুলি এখনও অনুলিপি করেছে। তবে আমি শুনেছি যে rsyncউত্স এবং গন্তব্যের মধ্যে পার্থক্য খুঁজে পেতে সক্ষম, এবং তাই কেবলমাত্র পার্থক্যগুলি অনুলিপি করতে। তাই আমি আমার ক্ষেত্রে অবাক হয়েছি যদি rsyncশেষবার যা ছিল তা আবার শুরু করতে পারো?


হ্যাঁ, আরএসসিএনসি এটি ইতিমধ্যে অনুলিপি করা ফাইলগুলিকে আবার অনুলিপি করবে না। কয়েকটি প্রান্তের কেস রয়েছে যেখানে এর সনাক্তকরণ ব্যর্থ হতে পারে। এটি কি ইতিমধ্যে অনুলিপিযুক্ত সমস্ত ফাইল অনুলিপি করেছে? আপনি কোন বিকল্পগুলি ব্যবহার করেছেন? উত্স এবং টার্গেট ফাইল সিস্টেমগুলি কী ছিল? আপনি যদি সমস্ত কিছু অনুলিপি করার পরে আরএসসিএন চালনা করেন তবে তা কি আবার অনুলিপি করে?
গিলস

@ গিলস: ধন্যবাদ! (1) আমার মনে হয় আমি আরএসসিএনকে টার্মিনালের আউটপুট থেকে একই ফাইলগুলি আবার অনুলিপি করে দেখেছি। (২) বিকল্পগুলি আমার অন্যান্য পোস্টের মতো, যেমন sudo rsync -azvv /home/path/folder1/ /home/path/folder2। (3) উত্স এবং লক্ষ্য উভয়ই এনটিএফএস, কেনার উত্স একটি বাহ্যিক এইচডিডি, এবং লক্ষ্যটি একটি অভ্যন্তরীণ এইচডিডি। (3) এটি এখন চলছে এবং এখনও শেষ হয়নি।
টিম

আংশিক স্থানান্তরিত ফাইল পুনরায় শুরু করতে (বৃহত ফাইলগুলির জন্য দরকারী)
পার্বত্যাঞ্চলীয় পতাকাও রয়েছে

3
@ আমার মাথার উপরের অংশটি সরিয়ে দিন, কমপক্ষে ঘড়ির স্কিউ এবং সময় রেজোলিউশনে পার্থক্য রয়েছে (FAT ফাইল সিস্টেমগুলির একটি সাধারণ সমস্যা যা 2 সেকেন্ডের ইনক্রিমেন্টে সময় সঞ্চয় করে, --modify-windowবিকল্পটি এতে সহায়তা করে)।
গিলস

1
আপনার / বা / না থাকলে। ফাইল উত্স পাথ আর্গুমেন্টের শেষ প্রান্তে এটি তখন একটি উপ-ডিরেক্টরিতে একটি অতিরিক্ত অনুলিপি তৈরি করবে যার উত্স ডিরেক্টরি হিসাবে একই নাম রয়েছে
স্কেপেইরেন

উত্তর:


284

প্রথমত, আপনার প্রশ্নের "পুনঃসূচনা" অংশটি সম্পর্কে, --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 @ জোনাথন দ্বারা তৈরি পয়েন্টগুলি প্রতিফলিত করতে পরিবর্তন হয়েছে (ধন্যবাদ!)


4
এই বলে --partialযথেষ্ট।
সিস টিমর্ম্যান


2
@ সিএমসিডিগ্রাগনকাই আসলে নীচে আলেকজান্ডারের উত্তরটি দেখুন --partial-dir- দেখে মনে হচ্ছে এটি এটির জন্য উপযুক্ত বুলেট। আমি পুরোপুরি কিছু মিস করেছি;)
ড্যানিয়েলস্মেডেগার্ডবুস

2
@DanielSmedegaardBuus আমি এটা নিজেকে একটি ধীর গতির সংযোগ পরীক্ষা এবং এই কি আমি দেখতে শুধুমাত্র --partial : rsync কপি অস্থায়ী নাম মধ্যে ফাইল, সংযোগ বিঘ্নিত, দূরবর্তী rsync অবশেষে চলে আসে নিয়মিত নামের ফাইল এবং শোধবোধ, তারপর উপরে সাথে --partialএবং বাইরে পুনরায় চলমান --append, নতুন অস্থায়ী ফাইলটি আংশিকভাবে স্থানান্তরিত দূরবর্তী ফাইলের একটি অনুলিপি দিয়ে শুরু করা হয়, তারপরে অনুলিপিটি সংযোগ মারা যায় সেখান থেকে অনুলিপিটি অবিরত থাকে। (উবুন্টু 14.04 /
আরএসএনসি

4
বর্ণিত আচরণে আপনার আত্মবিশ্বাসের স্তরটি কী --checksum? এর মতে manডেল্টা-ট্রান্সফারের পরিবর্তে কোন ফাইলগুলি স্থানান্তরিত করতে হবে তা সিদ্ধান্ত নেওয়ার সাথে এর আরও অনেক কিছু রয়েছে (যা সম্ভবতঃ rsyncএর ডিফল্ট আচরণ)।
জোনাথন ওয়াই।

56

টি এল; ডিআর:

আরএসসিএন ম্যান পৃষ্ঠাগুলি যেমন প্রস্তাবিত হয় কেবল আংশিক ডিরেক্টরি উল্লেখ করুন:

--partial-dir=.rsync-partial

দীর্ঘতর ব্যাখ্যা:

--partial-dirঅপশনটি ব্যবহার করে এটি করার জন্য বাস্তবে একটি অন্তর্নির্মিত বৈশিষ্ট্য রয়েছে, যার বিকল্প --partialএবং --append-verify/ --appendবিকল্পের অনেকগুলি সুবিধা রয়েছে ।

আরএসসিএন ম্যান পৃষ্ঠা থেকে উদ্ধৃত অংশ:

--partial-dir=DIR
      A  better way to keep partial files than the --partial option is
      to specify a DIR that will be used  to  hold  the  partial  data
      (instead  of  writing  it  out to the destination file).  On the
      next transfer, rsync will use a file found in this dir  as  data
      to  speed  up  the resumption of the transfer and then delete it
      after it has served its purpose.

      Note that if --whole-file is specified (or  implied),  any  par-
      tial-dir  file  that  is  found for a file that is being updated
      will simply be removed (since rsync  is  sending  files  without
      using rsync's delta-transfer algorithm).

      Rsync will create the DIR if it is missing (just the last dir --
      not the whole path).  This makes it easy to use a relative  path
      (such  as  "--partial-dir=.rsync-partial")  to have rsync create
      the partial-directory in the destination file's  directory  when
      needed,  and  then  remove  it  again  when  the partial file is
      deleted.

      If the partial-dir value is not an absolute path, rsync will add
      an  exclude rule at the end of all your existing excludes.  This
      will prevent the sending of any partial-dir files that may exist
      on the sending side, and will also prevent the untimely deletion
      of partial-dir items on the receiving  side.   An  example:  the
      above  --partial-dir  option would add the equivalent of "-f '-p
      .rsync-partial/'" at the end of any other filter rules.

ডিফল্টরূপে, rsync একটি এলোমেলো অস্থায়ী ফাইল নাম ব্যবহার করে যা কোনও স্থানান্তর ব্যর্থ হলে মুছে ফেলা হয়। উল্লিখিত হিসাবে, --partialআপনি rsync তৈরি করে অসম্পূর্ণ ফাইলটিকে সফলভাবে স্থানান্তরিত করে রাখতে পারেন , যাতে পরে --append-verify/ --appendঅপশনগুলি ব্যবহার করে এটিতে যুক্ত করা সম্ভব হয় । তবে এটি বেশ কয়েকটি অনুকূল কারণ sub

  1. আপনার ব্যাকআপ ফাইলগুলি সম্পূর্ণ নাও হতে পারে এবং রিমোট ফাইলটি যাচাই করা ছাড়া যা এখনও অবিরত হওয়া উচিত, তা জানার উপায় নেই।

  2. আপনি যদি ব্যবহার করার চেষ্টা করছেন --backupএবং --backup-dir, আপনি সবেমাত্র এই ফাইলটির একটি নতুন সংস্করণ যুক্ত করেছেন যা আপনার সংস্করণ ইতিহাসের আগে কখনও আসে নি।

তবে আমরা যদি ব্যবহার করি --partial-dir, আরএসসিএনসি অস্থায়ী আংশিক ফাইল সংরক্ষণ করবে এবং পরের বার আপনি যখন এটি চালাবেন তখন সেই আংশিক ফাইলটি ব্যবহার করে পুনরায় ডাউনলোড করা শুরু করবেন এবং আমরা উপরের সমস্যাগুলি ভুগছি না।


38

আপনি -Pআপনার কমান্ডে বিকল্পটি যুক্ত করতে চাইতে পারেন ।

manপৃষ্ঠা থেকে :

--partial By default, rsync will delete any partially transferred file if the transfer
         is interrupted. In some circumstances it is more desirable to keep partially
         transferred files. Using the --partial option tells rsync to keep the partial
         file which should make a subsequent transfer of the rest of the file much faster.

  -P     The -P option is equivalent to --partial --progress.   Its  pur-
         pose  is to make it much easier to specify these two options for
         a long transfer that may be interrupted.

এর পরিবর্তে:

sudo rsync -azvv /home/path/folder1/ /home/path/folder2

না:

sudo rsync -azvvP /home/path/folder1/ /home/path/folder2

অবশ্যই, আপনি যদি অগ্রগতি আপডেটগুলি না চান তবে আপনি কেবল ব্যবহার করতে পারেন --partial, যেমন:

sudo rsync --partial -azvv /home/path/folder1/ /home/path/folder2

@ ফ্লিম পুরোপুরি সঠিক নয়। যদি কোনও বাধা থাকে (নেটওয়ার্ক বা গ্রহণের পক্ষ) তখন - পার্টিশাল ব্যবহার করার সময় আংশিক ফাইলটি রাখা হয় এবং যখন আরএসসিএনসি আবার চালু করা হয় তখন এটি ব্যবহৃত হয়। ম্যানপেজ থেকে: "- পার্টিশিয়াল বিকল্পটি ব্যবহার করে আরএসসিএনকে আংশিক ফাইলটি রাখতে বলা হয় যা <b> ফাইলটির পরবর্তী ফাইলগুলির দ্রুততম স্থানান্তর আরও দ্রুত </ b> করা উচিত" "
গায়েথ

2
@ ফ্লিম এবং @ কেওয়েথে, আমার উত্তরটি বেশ নির্ভুল ছিল না এবং অবশ্যই আপ-টু-ডেট ছিল না। সংস্করণ 3 + প্রতিফলিত করার জন্য আমি এটি আপডেট করেছি rsync। এটি চাপ দেওয়া গুরুত্বপূর্ণ, যদিও এটি নিজেই একটি ব্যর্থ স্থানান্তর পুনরায় শুরু --partialকরে না । বিস্তারিত জানার জন্য আমার উত্তর দেখুন :)
ড্যানিয়েলসমেডগার্ডবুস

2
@ ড্যানিয়েলসমেডেগার্ডবুস আমি এটি চেষ্টা করেছি এবং এটি -Pআমার ক্ষেত্রে যথেষ্ট। সংস্করণ: ক্লায়েন্টের 3.1.0 এবং সার্ভারে 3.1.1 রয়েছে। আমি সিআরটিএল-সি দিয়ে একটি একক বড় ফাইলের স্থানান্তরকে বাধাগ্রস্থ করেছি। আমার ধারণা আমি কিছু মিস করছি
guettli

কেন vv? অর্থাত v2 বার ব্যবহার?
mrgloom

আরএসআইএনসি দিয়ে ফাইলের কিছু অংশ সেভ করবে কোথায় -azvvP?
mrgloom

1

আমি মনে করি আপনি জোর করে কল করছেন rsyncএবং সুতরাং যখন আপনি এটি পুনরায় স্মরণ করবেন তখন সমস্ত ডেটা ডাউনলোড হচ্ছে getting --progressঅনুলিপি করা হয়নি এমন ফাইলগুলিকে কেবল অনুলিপি করার বিকল্প ব্যবহার করুন এবং --deleteইতিমধ্যে অনুলিপি করা থাকলে কোনও ফাইল মুছে ফেলার বিকল্প রয়েছে এবং এখন এটি উত্স ফোল্ডারে উপস্থিত নেই ...

rsync -avz --progress --delete -e  /home/path/folder1/ /home/path/folder2

আপনি যদি অন্য সিস্টেমে লগইন করতে এবং ফাইলগুলি অনুলিপি করতে ssh ব্যবহার করে থাকেন,

rsync -avz --progress --delete -e "ssh -o UserKnownHostsFile=/dev/null -o \
StrictHostKeyChecking=no" /home/path/folder1/ /home/path/folder2

আমার এই ধারণাটি বোঝার কোনও ভুল আছে কিনা তা আমাকে জানান ...


1
আপনি কি দয়া করে আপনার উত্তরটি সম্পাদনা করতে পারেন এবং আপনার বিশেষ এসএসএস কলটি কী তা ব্যাখ্যা করতে পারেন এবং আপনি কেন এটি করার পরামর্শ দিচ্ছেন?
ফাবিয়েন

2
@ ফ্যাবিয়েন তিনি আরএসসিএনকে দুটি এসএসএস বিকল্প নির্ধারণ করতে বলেছেন (সংযোগের জন্য আরএসএনসি এসএসএস ব্যবহার করে)। দ্বিতীয়টি ssh কে নিশ্চিত করে প্রম্পট না করার কথা বলছে যদি তিনি যে হোস্টটির সাথে সংযোগ করছেন তা ইতিমধ্যে জানা নেই ("পরিচিত হোস্ট" ফাইলটিতে বিদ্যমান)। প্রথমটি ssh কে ডিফল্ট পরিচিত হোস্ট ফাইলটি ব্যবহার না করার জন্য বলে (যা ~ / .ssh / known_hosts হবে)। তিনি পরিবর্তে / dev / নাল ব্যবহার করেন, যা অবশ্যই সর্বদা খালি থাকে এবং ssh এর পরে সেখানে হোস্টটি খুঁজে না পাওয়ায় এটি সাধারণত নিশ্চিতকরণের জন্য অনুরোধ জানায়, সুতরাং বিকল্পটি দুটি। সংযোগ স্থাপনের পরে,
এসএসএস

1
... তবে আপনি সম্ভবত ভাবছিলেন যে আরএসসিএনসি অপারেশনটিতে এর কী প্রভাব আছে, যদি তা থাকে। উত্তর কিছুই না। এটি কেবলমাত্র আপনার এসএসএইচ পরিচিত হোস্ট ফাইলগুলিতে সংযুক্ত হয়ে থাকা হোস্টকে না রাখার জন্য কাজ করে। সম্ভবত তিনি একটি সিসাদমিন হলেন প্রায়শই প্রচুর সংখ্যক নতুন সার্ভার, অস্থায়ী সিস্টেম বা নোট নোটের সাথে সংযোগ স্থাপন করে। আমি জানি না :)
ড্যানিয়েলসমেডগার্ডবাউস

4
"অনুলিপি করা হয়নি এমন ফাইলগুলি অনুলিপি করতে --progress বিকল্পটি ব্যবহার করুন" কী?
moi

1
এখানে বেশ কয়েকটি ত্রুটি রয়েছে; একটি অত্যন্ত গুরুতর: উত্সটিতে নেই এমন গন্তব্যগুলিতে--delete ফাইলগুলি মুছবে delete তত কম গুরুতর বিষয় হ'ল কীভাবে জিনিসগুলি অনুলিপি করা হয় তা সংশোধন করে না; এটি অনুলিপি করার সাথে সাথে কেবল প্রতিটি ফাইলের উপর একটি অগ্রগতি প্রতিবেদন দেয়। (আমি গুরুতর ত্রুটিটি সংশোধন করেছি; এর সাথে প্রতিস্থাপন করেছি ))--progress--remove-source-files
পল ডি'অস্ট

1

আমি এই সহজ স্ক্রিপ্ট ব্যবহার করছি। নির্দিষ্ট পতাকা সামঞ্জস্য করতে নির্দ্বিধায় এবং / অথবা এটিকে পরামিতি করুন।

#!/bin/bash

while [ 1 ]
do
    rsync -avz --partial [source] [dest]:
    if [ "$?" = "0" ] ; then
        echo "rsync completed normally"
        exit
    else
        echo "Rsync failure. Backing off and retrying..."
        sleep 180
    fi
done

1

এই দিকে দেরিতে পৌঁছেছি, তবে আমার একই প্রশ্ন ছিল এবং আমি আলাদা উত্তর পেয়েছি।

--partialপতাকা ( "আংশিকভাবে স্থানান্তরিত ফাইল রাখার" এ rsync -h) বড় ফাইল জন্য দরকারী, হিসাবে --append( "খাটো ফাইল সম্মুখের তথ্য যোগ"), কিন্তু প্রশ্ন সম্পর্কে একটি হল সংখ্যক ফাইল।

ইতিমধ্যে অনুলিপি করা ফাইলগুলি এড়ানোর জন্য -u(বা --update: "রিসিভারে নতুন যে ফাইলগুলি এড়িয়ে যান")।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.