প্রশ্ন স্থানীয়ভাবে একটি বড় ডিরেক্টরি গাছ অনুলিপি করা হচ্ছে? সিপি বা rsync?


আমি একটি বড় ডিরেক্টরি গাছ, প্রায় 1.8 টিবি অনুলিপি করতে হবে। এটা সব স্থানীয়। অভ্যাস আউট আমি ব্যবহার করতে চাই rsyncতবে, আমি অনেক বিন্দু আছে কিনা, এবং যদি আমি বরং ব্যবহার করা উচিত cp

আমি অনুমতি এবং ইউআইডি / গিড সম্পর্কে চিন্তিত, যেহেতু তাদের অনুলিপি সংরক্ষিত রাখতে হবে (আমি জানি rsync এটি করে)। পাশাপাশি সিমলিঙ্ক মত জিনিস।

গন্তব্যটি খালি, তাই আমি শর্তসাপেক্ষে কিছু ফাইল আপডেট করার বিষয়ে চিন্তা করতে হবে না। এটা সব স্থানীয় ডিস্ক, তাই আমি ssh বা নেটওয়ার্ক সম্পর্কে চিন্তা করতে হবে না।

কারণ আমি rsync থেকে দূরে প্রলুব্ধ করা হবে, কারণ rsync আমি প্রয়োজন বেশী করতে পারে। rsync চেকসাম ফাইল। আমি যে প্রয়োজন হয় না, এবং এটা cp আর দীর্ঘ সময় নিতে পারে যে উদ্বিগ্ন।

তাহলে আপনি কি হিসেব করেন, rsync অথবা cp?


217
2017-07-20 14:36


উত্স


যদি আপনি rsync ঠিক তা করতে চান তবে আপনি যদি এই বিশেষ অ্যাপ্লিকেশনের জন্য তার ব্যবহার সম্পর্কে পুরোপুরি পরিচিত হন, এবং যদি এটি আপনার স্বাদ অনুসারে যথেষ্ট দ্রুত কাজ করে তবে কেন পৃথিবীতে আপনি সুইচ করতে চান? - eleven81
কারণ আমি উদ্বিগ্ন যে rsync cp এর চেয়ে বেশি সময় নেবে, কারণ rsync অনেকগুলি চেকসুমিং করে যা সিপি করবে না - Rory
চেকসুমের cpu ওভারহেড ডিস্ক / নেটওয়ার্ক i / o এর তুলনায় ছোট। ডিস্ক একই সিস্টেমে এবং OS OS বাস নিয়ন্ত্রক মধ্যে কিছু চতুর চালনা ড্রাইভ কপি করতে পারে না। - Martin Beckett
Checksumming আকার এবং টাইমস্ট্যাম্প চেক ভিন্ন যে ফাইল সম্পন্ন করা হয়। আপনি যদি প্যারানোড (কপি করার সময় একটি পাওয়ার আউটআউটের পরে) তবে আপনি সমস্ত ফাইলগুলিতে চেকসামিংয়ের জন্য জোর দিতে পারেন তবে একটি স্থানীয় স্থানান্তর যা সাধারণত স্ক্র্যাচ থেকে শুরু করার চেয়ে ধীর। - korkman
হয়তো সে তার কর্মপ্রবাহে উন্নতি সম্পর্কে আগ্রহী, এবং সে তার মাথাকে বালিতে দাফন করে না, সে সবকিছু জানে। এই মন্তব্য সত্যিই আমাকে বিরক্ত। - Martin Konecny


উত্তর:


আমি rsync ব্যবহার করব কারণ এটি যে কোনো কারণে ব্যাহত হয় তবে আপনি খুব কম খরচে এটি সহজেই পুনরায় চালু করতে পারেন। এবং rsync হচ্ছে, এটি এমনকি একটি বড় ফাইলের মাধ্যমে অংশটি পুনরায় আরম্ভ করতে পারে। অন্যদের উল্লেখ হিসাবে, এটা সহজে ফাইল বাদ দিতে পারেন। সর্বাধিক জিনিস সংরক্ষণ করার সবচেয়ে সহজ উপায় ব্যবহার করা হয় -a পতাকা - 'সংরক্ষণাগার।' সুতরাং:

rsync -a source dest

যদিও ইউআইডি / জিআইডি এবং সিমলিঙ্কগুলি সংরক্ষিত থাকে -a (দেখুন -lpgo), আপনার প্রশ্ন বোঝায় আপনি একটি হতে পারে সম্পূর্ণ ফাইল সিস্টেম তথ্য অনুলিপি; এবং -a হার্ড লিঙ্ক, বর্ধিত বৈশিষ্ট্য, অথবা ACLs (লিনাক্সে) বা উপরে অন্তর্ভুক্ত নয় না সম্পদ ফোরস (ওএস এক্স।) এভাবে, একটি ফাইল সিস্টেমের শক্ত কপি জন্য, আপনাকে সেই পতাকাগুলি অন্তর্ভুক্ত করতে হবে:

rsync -aHAX source dest # Linux
rsync -aHE source dest  # OS X

ডিফল্ট সিপি আবার চালু হবে, যদিও -u পতাকা হবে "যখন কেবল SOURCE ফাইলটি গন্তব্য ফাইলের চেয়ে নতুন হয় বা যখন গন্তব্য ফাইলটি অনুপস্থিত থাকে তখনই অনুলিপি করুন"। এবং -a (সংরক্ষণাগার) পতাকা পুনরাবৃত্তি করা হবে, যদি আপনি পুনঃসূচনা এবং অনুমতি সংরক্ষণ করতে হয় তবে ফাইলগুলি পুনরুদ্ধার করবেন না। তাই:

cp -au source dest

188
2017-07-20 14:40



সিপি-এর পতাকাটি সম্ভবত সেরা সমাধান নয়, এটি একটি আংশিক অনুলিপি / দূষিত ফাইল সনাক্ত করবে না। Rsync সম্পর্কে চমৎকার জিনিস হল যে আপনি পার্থক্যগুলি সনাক্ত করতে এটি MD5 সমষ্টি ফাইল করতে পারেন। - Chad Huneycutt
-W (--whole-file) বিকল্পটি যোগ করা একটি বাধাগ্রস্ত rsync গতিবেগে, এটি চেকসামিংয়ের পরিবর্তে ফাইলটি অনুলিপি করবে। - hayalci
আসলে, rsync স্থানীয় স্থানান্তর সনাক্ত করে এবং স্বয়ংক্রিয়ভাবে চেকসামিং ছাড়া সম্পূর্ণ ফাইল অনুলিপি সক্ষম করে। - korkman
এবং - অগ্রগতি যা সত্যিই সহজ! - Matt
-পি বা - অগ্রগতি পৃথকভাবে প্রতিটি ফাইলের জন্য অগ্রগতি দেখায়। এটি বড় ফাইলগুলি অনুলিপি করার জন্য দরকারী, অনেকগুলি (হাজার) ছোট ফাইলের জন্য নয়, এর অর্থ হল আপনি আরো পড়তে পারবেন না এমন অনেক বেশি আউটপুট। এটি মিলিত সমস্ত ফাইল ওভারাল অগ্রগতি প্রদর্শন করা হয় না। - SPRBRN


স্থানীয় ফাইল সিস্টেম অনুলিপি করার সময় আমি সবসময় নিম্নলিখিত rsync অপশন ব্যবহার করুন:

# rsync -avhW --no-compress --progress /src/ /dst/

এখানে আমার যুক্তি:

-a is for archive, which preserves ownership, permissions etc.
-v is for verbose, so I can see what's happening (optional)
-h is for human-readable, so the transfer rate and file sizes are easier to read (optional)
-W is for copying whole files only, without delta-xfer algorithm which should reduce CPU load
--no-compress as there's no lack of bandwidth between local devices
--progress so I can see the progress of large files (optional)

আমি অন্য উত্তর দ্বারা প্রস্তাবিত নিম্ন tar কমান্ডের উপরে উপরের rsync সেটিংস ব্যবহার করে 17% দ্রুত স্থানান্তর দেখেছি:

# (cd /src; tar cf - .) | (cd /dst; tar xpf -)

89
2018-05-07 19:09



আমি নিম্নলিখিত ত্রুটি হচ্ছে: rsync: --no-compress: unknown option @ এলিস পার্সিভাল। - alper
এই দ্রুত হালকা হয়। এই চেয়ে দ্রুত করতে rm -rf /src/। - dgo
@ এলপারের মতো, --no-compress আমার rsync এর সংস্করণের বিকল্প ছিল না (CentOS 7 এ); আমি ব্যবহার করেছি - কমপ্রেস-লেভেল = 0 পরিবর্তে। - Paul


যখন আমি একটি বড় পরিমাণে তথ্য অনুলিপি করতে হবে, আমি সাধারণত tar এবং rsync এর সমন্বয় ব্যবহার করি। প্রথম পাস এটি, কিছু ভালো লাগা হয়:

# (cd /src; tar cf - .) | (cd /dst; tar xpf -)

সাধারণত প্রচুর পরিমাণে ফাইলের সাথে, কারও কারও কারও কারও কারও জন্য হ্যান্ডেল করা যাবে না। অথবা সম্ভবত প্রক্রিয়াটি বাধাপ্রাপ্ত হবে, অথবা যদি এটি একটি ফাইল সিস্টেম মাইগ্রেশন হয় তবে আপনি প্রকৃত মাইগ্রেশন পদক্ষেপের আগে প্রাথমিক অনুলিপিটি করতে চাইতে পারেন। কোনও প্রারম্ভিক অনুলিপিের পরে, আমি এটি সমস্ত সিঙ্ক করার জন্য একটি rsync পদক্ষেপটি করি:

# cd /dst; rsync -avPHSx --delete /src/ .

উল্লেখ্য যে পিছনে স্ল্যাশ /src/ গুরুত্বপূর্ণ।


78
2017-07-20 15:15



+1 আমি সাধারণত rsync তুলনায় বড় কপি জন্য দ্রুত হতে পাওয়া গেছে। আমি একটি চূড়ান্ত rsync সঙ্গে বন্ধ finishing ধারণা পছন্দ। - Geoff Fritz
যদি ডার খালি খালি থাকে তবে টর একটি ভাল পছন্দ। যদিও আমার উপায় হবে: সিডি $ DSTDIR; tar সি-সি $ SRCDIR। | আলকাতরা - asdmin
যে এই পদ্ধতি সৌন্দর্য। আপনি স্থানটি দ্বিগুণ করতে পারবেন না কারণ আপনি আসলে কোনও মধ্যবর্তী টারব ফাইল তৈরি করেন না। পাইপের পূর্বে তথ্যটি প্যাক করে এবং স্টডাউটে স্ট্রিম করে এবং পাইপের পরে তারপরে স্টেডিন থেকে এটি আটকে যায় এবং এটি আনপ্যাক করে। - Chad Huneycutt
আমি একটি 12 গিগাবাইট স্থানান্তর জন্য একটি cp -a, এবং 42 গিগাবাইট স্থানান্তর জন্য এই পদ্ধতি। টার পদ্ধতিটি প্রায় 1/4 সময় নেয়। - NGaida
আমি রাখা pv মাঝখানে অগ্রগতি দেখতে সক্ষম, ব্যবহার করে সব তথ্য আকার অনুমান df। আমি ব্যবহৃত --numeric-owner, উৎস ডিস্ক অন্য সিস্টেম থেকে ছিল এবং আমি চাই না tar মালিকদের জগাখিচুড়ি করতে: tar -C /old-path --numeric-owner -S -c . | pv -tpeba -s 100G | tar -C /new-path --numeric-owner -S -xp - Petr Pudlák


rsync

আমি ব্যবহার rsync এখানে, আমি সহজ কমান্ডের জন্য সিপি পছন্দ করি, না।

$ rsync -ahSD --ignore-errors --force --delete --stats $SRC/ $DIR/

cpio

এখানে একটি উপায় যে এমনকি নিরাপদ, cpio। এটি প্রায় হিসাবে দ্রুত হিসাবে, সম্ভবত একটু দ্রুত।

$ cd $SRC && find . -mount -depth -print0 2>/dev/null | cpio -0admp $DEST &>/dev/null

আলকাতরা

এটি ভাল, এবং পড়া-ব্যর্থতার উপর চলতে থাকে।

$ tar --ignore-failed-read -C $SRC -cf - . | tar --ignore-failed-read -C $DEST -xf -

স্থানীয় কপি জন্য যারা সব মনে রাখবেন।


13
2018-02-26 17:06



কেন আপনি rsync জন্য -S এবং -D পতাকা ব্যবহার করবেন? - miyalys


rsync -aPhW --protocol=28 RSYNC সঙ্গে যারা বড় কপি গতিতে সাহায্য করে। আমি সবসময় rsync যান কারণ 90 জিআইবি মাধ্যমে মধ্যপন্থী হচ্ছে এবং এটি ভঙ্গ ভেঙ্গে সিপি থেকে আমাকে ভয়


6
2017-07-20 16:24



যে কমান্ড স্ট্রিং মধ্যে পুরোনো প্রোটোকল ব্যবহার মান কি? - ewwhite
একটি ম্যাক মেশিনে পুরনো প্রোটোকলের পুরানো সংস্করণটি কিছু নতুন rsync প্রোটোকল পুনর্বিবেচনার উপর হ্যাং করে। ২9. পুরোনো প্রোটোকলটিতে যাওয়ার জন্য এটি বলার ফলে এটি আবার ওভার চেক করে না। - oneguynick
আমি অনুমান যে সংখ্যা 28 আর বৈধ নয়? - SPRBRN


দ্য rsync কমান্ড সবসময় এটি স্থানান্তরিত প্রতি বাইট নেভিগেশন checksums গণনা।

কমান্ড লাইন বিকল্প --checksum কোন ফাইলগুলি স্থানান্তরিত করতে হবে কিনা তা নির্ধারণের জন্য ফাইলগুলির চেকসামগুলি ব্যবহার করা হয়, যেমন:

-c, --checksum  চেকসামের উপর ভিত্তি করে এড়িয়ে যান, মোড সময় এবং আকার নয় "

Manpage এছাড়াও এই বলে:

উল্লেখ্য যে rsync সর্বদা যাচাই করে যে প্রতিটি স্থানান্তরিত ফাইল সঠিকভাবে তার সম্পূর্ণ-ফাইল চেকসামটি যাচাই করে প্রাপ্তির দিক থেকে পুনঃনির্মাণ করা হয়েছে, তবে স্বয়ংক্রিয়-হস্তান্তর যাচাইকরণের স্বয়ংক্রিয়ভাবে এই বিকল্পটির আগে কোনও বিকল্পের সাথে কিছু করার নেই "এই ফাইলটি কি প্রয়োজন আপডেট করা?" চেক করুন।

সুতরাং rsync এছাড়াও, সর্বদা, গ্রহণকারী পাশে এমনকি সমগ্র ফাইলের একটি চেকসাম গণনা করে -c/ --checksum বিকল্প "বন্ধ" হয়।


6
2017-11-28 01:20



আপনার পোস্ট এখানে কিছু আকর্ষণীয় তথ্য যোগ করা হয়েছে, Rants, এবং অপমান আপনার পোস্টের মান হ্রাস। এই সাইটটি অ গঠনমূলক rants জন্য একটি ফোরাম নয়। আপনি যদি সোর্সটি সংশোধন করতে সক্ষম হন, তবে আপনি আপনার প্যাচ হিসাবে পরিবর্তনগুলি জমা দিয়েছেন? আপনি github বা কিছু আপনার সংস্করণ পোস্ট করেছেন? যদি আপনি এ ব্যাপারে দৃঢ়ভাবে অনুভব করেন, তবে আপনি যদি অপ্রয়োজনীয় অপমান করার পরিবর্তে কিছুটা গঠনমূলক কিছু করার চেষ্টা করেন তবে এটি আরও ভাল হতে পারে। - Zoredache
হ্যাঁ, শেষ অনুচ্ছেদ সত্যিই প্রয়োজনীয় ছিল না। - Sherwin Flight


যা কিছু তুমি পছন্দ কর. শুধু ভুলবেন না -a আপনি ব্যবহার করার সিদ্ধান্ত নিতে যখন সুইচ cp

যদি আপনার সত্যিই একটি উত্তর দরকার হয় তবে আমি rsync ব্যবহার করব কারণ এটি আরও বেশি নমনীয়। অনুলিপি করার আগে সম্পূর্ণ শাটডাউন প্রয়োজন? শুধু ctrl-c এবং যত তাড়াতাড়ি আপনার ফিরে সারসংকলন। কিছু ফাইল বাদ প্রয়োজন? শুধু ব্যবহার করুন --exclude-from। মালিকানা বা অনুমতি পরিবর্তন করতে হবে? rsync আপনার জন্য যে কাজ করবে।


5
2017-07-20 14:40



পি-ফ্ল্যাগ আবার কি করে? - Rory
এটি Preserver মালিকানা, টাইমস্ট্যাম্প এবং অনুমতি হবে। - innaM
সিপি-এ ভাল হবে। - David Pashley
প্রকৃতপক্ষে. উত্তর অনুযায়ী পরিবর্তিত। - innaM


rsync মহান, কিন্তু সত্যিই বড় ডিরেক্টরি গাছ সঙ্গে সমস্যা আছে কারণ এটি মেমরি গাছ সংরক্ষণ। আমি এই থ্রেড খুঁজে পেয়েছিলাম যখন তারা এই সমস্যা ঠিক করতে চাই কিনা দেখতে চাই।

আমিও খুঁজে পেয়েছি:

http://matthew.mceachen.us/geek/gigasync/

আপনি নিজে নিজে বৃক্ষ ভেঙে এবং একাধিক rsyncs চালাতে পারে।


5
2017-07-20 16:14



যদি আপনি সংস্করণ 3 ব্যবহার করেন তবে এটি বড় হলে মেমরিতে পুরো গাছটি রাখে না, এটি একটি ক্রমবর্ধমান-পুনর্মিলন অ্যালগরিদম ব্যবহার করে: samba.org/ftp/rsync/src/rsync-3.0.0-NEWS - Kyle Brandt♦


এই থ্রেডটি খুব দরকারী ছিল এবং ফলাফলটি অর্জনের জন্য অনেকগুলি বিকল্প ছিল, তাই আমি তাদের কয়েকজনকে বেঞ্চমার্ক করার সিদ্ধান্ত নিয়েছি। আমি বিশ্বাস করি যে আমার ফলাফলগুলি অন্যদের পক্ষে আরও দ্রুত কাজ করার ধারনা রয়েছে।

সরানো 532Gb তথ্য বিতরণ করা হয় 1,753,200 ফাইল আমরা ঐ সময় ছিল:

  • rsync 232 মিনিট সময় নেন
  • tar 206 মিনিট সময় নেন
  • cpio 225 মিনিট সময় নেন
  • rsync + parallel 209 মিনিট সময় নেন

আমার ক্ষেত্রে আমি ব্যবহার পছন্দ rsync + parallel। আমি এই তথ্য এই বিকল্পের মধ্যে আরো মানুষ সিদ্ধান্ত নিতে সাহায্য করে আশা করি।

সম্পূর্ণ বেঞ্চমার্ক প্রকাশিত হয় এখানে


5
2018-05-11 19:14



404 পৃষ্ঠা খুঁজে পাওয়া যায়নি - Amedee Van Gasse
ধন্যবাদ @AmedeeVanGasse ইউআরএল আপনি রিপোর্ট করার পরে একটি স্বল্প সংশোধন করা হয়েছে :) - arjones
কেন benchmarking না cp? এই প্রশ্নটির শিরোনাম! - calandoa
@ ক্যালান্ডোয়া আমি মনে করি cp অনিরাপদ, অর্থাত্: যখন এটি ভেঙ্গে যায় তখন আপনাকে শুরু করতে হবে, সেই ভাবে আমি বিকল্পগুলি পছন্দ করি যা পুনরায় শুরু করতে পারে, ergo rsync আমার প্রিয় :) - arjones


স্থানীয় স্থানীয় ডিরেক্টরি অনুলিপি করার সময়, আমার অভিজ্ঞতা হল "cp -van src dest" rsync এর চেয়ে 20% দ্রুত। যতদূর সম্ভব পুনঃসূচনাযোগ্যতা, তা "-n" করে। আপনি শুধু আংশিকভাবে অনুলিপি ফাইল আরএম করতে হবে। এটি একটি ISO বা কিছু যেমন না হয় বেদনাদায়ক।


2
2017-09-07 07:26





এআরজে এত স্কুল! আমি সত্যিই ARJ এবং / অথবা rsync কর্মক্ষমতা দিতে হবে সন্দেহ।

অবশ্যই আমি সবসময় কি cpio ব্যবহার করা হয়:

find . -print | cpio -pdm /target/folder

এই সিপি তুলনায় প্রায় দ্রুত, স্পষ্টভাবে দ্রুত তুলনায় দ্রুত এবং পাইপিং ছাড়া কিছু।


2
2017-09-09 04:09



"আসল সিপিও এবং খোঁজার ইউটিলিটিগুলি ডিক হাইটের দ্বারা লিখিত ছিল এটি AT & T এর ইউনিক্স সাপোর্ট গ্রুপে। তারা প্রথম 1977 সালে পিডব্লিউবি / ইউনিক্স 1.0-তে প্রকাশিত হয়েছিল - ফ্রিবিডিএস এর cpio মানুষ পাতা। - Chris S
cpio দুর্ভাগ্যবশত ফাইলের জন্য একটি 8GB উচ্চ সীমা আছে।
"পাইপিং ছাড়া কিছু"[সিক] ছাড়া find কমান্ড, আপনি এটি তালিকাভুক্ত হিসাবে, এটি একটি পাইপ আছে: find . -print | cpio -pdm /target/folder - warren