ডিরেক্টরিগুলির মধ্যে ফাইলগুলি সরানোর জন্য (অনুলিপি না করে) rsync ব্যবহার করছেন?


54

আমি কিছু সময়ের জন্য ফাইলগুলি অনুলিপি করতে rsync ব্যবহার করছি। আমার বোঝার যে rsync চেয়ে দ্রুত CP যখন ইতিমধ্যে হস্তান্তর ফাইল কিছু গন্তব্য ডিরেক্টরির মধ্যে, শুধুমাত্র ক্রমবর্ধমান পার্থক্য হস্তান্তর (অর্থাত "বদ্বীপ")।

যদি এটি সঠিক হয়, সেখানে ব্যবহার করার কোনো সুবিধা হবে rsync একটি ফোল্ডার সামগ্রীগুলি চলন্ত একটি , বলে, একটি ফোল্ডার বি , সঙ্গে বি খালি হচ্ছে?

ফোল্ডারের একটি ডেটার 1TB (এবং ফাইল লক্ষ লক্ষ) পাসে হয়েছে। স্থানান্তর একটি স্থানীয় ওভার সম্পন্ন করা হবে নেটওয়ার্কের ( একটি এবং বি হচ্ছে বিভিন্ন ফাইল সিস্টেম, উভয় মাউন্ট একটি সুপারকম্পিউটার, যেমন উপর একটি হল NFS- র এবং বি হয় দীপ্তি )।

যে ছাড়াও, কি পতাকার আমি জিজ্ঞাসা করতে ব্যবহার করা উচিত rsync সরাতে (কপি করবেন) ফাইল থেকে একটি থেকে বি (অর্থাত মুছে ফেলতে একটি স্থানান্তর করার সফলভাবে সমাপ্ত হয়েছে)?


7
আমি rsyncপ্রতিস্থাপন করতে পারে বলে মনে হয় না mvmvউত্স এবং গন্তব্য একই ফাইল সিস্টেমের মধ্যে থাকা অবস্থায় আমি বেশিরভাগ ফাইল সিস্টেমে দ্রুততর হওয়ার প্রত্যাশা করব , কারণ rsyncযে কোনও বিষয়ই একটি অনুলিপি তৈরি করতে হবে এবং mvসম্ভবত কয়েকটি ডিরেক্টরি এন্ট্রি পরিবর্তন করে দূরে সরে যেতে পারে। আমি যেটির নিকটতম জিনিসটি খুঁজে পেতে পারি তা rsync mvহ'ল --remove-source-filesকমান্ড, তবে এটি ডিরেক্টরিগুলি সরিয়ে দেয় না।
jw013

1
ধন্যবাদ @ jw013! কেবল পরিষ্কার করার জন্য, ফাইলগুলি বিভিন্ন ফাইল সিস্টেমে রয়েছে, এবং স্থানান্তরটি কোনও নেটওয়ার্কে করা হবে । আপনি কি জানেন যে এটি এখনও আরও mvদ্রুত তৈরি করবে ?
আমেলিও ভাজকেজ-রেইনা

1
ভাল, mvকোনও নেটওয়ার্ক জুড়ে পরিচালনা করতে পারে না - এটির জন্য স্থানীয় মাউন্ট (যেমন এনএফএস) নির্ভর করতে হবে। তাহলে বোতলের নেটওয়ার্ক, rsyncসম্ভবত যতো তাড়াতাড়ি হবে mvকারণ rsyncকম্প্রেশন করতে পারেন।
jw013

2
যাইহোক cpহয়েছে -uসোর্স ফাইল কপি করতে হলে গন্তব্য ফাইল অথবা যখন গন্তব্য ফাইল পাওয়া যাচ্ছে না চেয়ে নতুন হল বিকল্প
ভিড়ের

উত্তর:


69

আপনি --remove-source-filesফাইলগুলি অনুলিপি করার পরিবর্তে আরএসসিএনকে পাস করতে পারেন ।

তবে আপনার ক্ষেত্রে, গন্তব্যটি খালি হওয়ায় আরএসসিএনসি ব্যবহারের কোনও মানে নেই। একটি সমতল mvযত দ্রুত সম্ভব কাজটি করবে।

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


6
কালেব যা বলেছেন তা কেবল পুনরাবৃত্তি করার জন্য, যদি আপনি উদাহরণস্বরূপ একটি ফ্ল্যাঙ্ক নেটওয়ার্কের কারণে দুর্নীতির বিষয়ে উদ্বিগ্ন হন, আরএসসিএনসি বুঝতে পারে, যেহেতু এটি লেখার সাথে সাথে প্রতিটি ফাইল যাচাই করে তা যাচাই করে তা পরীক্ষা করে।
ড্যানিয়েল এস স্টার্লিং 21

5
--remove-source-filesএকমাত্র উৎস ফাইল মুছে ফেলে। আপনি যদি আমাদের উত্সটি সাফ করতে চান, তাহলে আরএসইএনসি সফলভাবে চলার পরে কি আপনার উত্সটিতে কোনও আরএম-আরএফ (বা findসমস্ত ডিরেক্টরি এবং পাস -delete) করতে হবে না?
ট্রেভর বয়েড স্মিথ

1
@ ড্যানিয়েলস। স্টার্লিং আরএসএনসিচ লেখার পরে চেকসাম ব্লক করে না (বিদ্যমান ফাইলগুলির কোন অংশ আপডেট হয়েছিল এবং এটি সিঙ্ক্রোনাইজ করা দরকার তা অনুসন্ধান করতে এটি চেকসাম ব্যবহার করে)। --checksumপ্রথম সিঙ্ক্রোনাইজেশনের ফলাফল যাচাই করতে এটি বলার জন্য আপনি একটি দ্বিতীয় সিঙ্ক করতে পারেন ।
ক্লাইমেন্ট

19

যেহেতু --remove-source-filesডিরেক্টরিগুলি সরায় না তাই আমি এসএসএসের মাধ্যমে ফাইলগুলি সরানোর জন্য নিম্নলিখিত কমান্ডগুলি জারি করি :

rsync -avh --progress --remove-source-files /home/user/mystuff/* user@external.server:/home/user/backup
find . -type d -empty -delete

আমি ব্যক্তিগতভাবে --progressবৈশিষ্ট্যটি পছন্দ করি , যেমন আমি নিজেই এই স্থানান্তরটি করি। আপনি যদি কোনও স্ক্রিপ্ট ব্যবহার করছেন তবে এটি সরান। আমি প্রত্যাশা করি যে এটি প্রান্তিকভাবে স্থানান্তর হ্রাস করে। findকমান্ড এর ডিলিট বিকল্প শুধুমাত্র ফাঁকা ডিরেক্টরি মুছে ফেলে - ব্যবহার করবেন না rm -rf, যেমন খালি নয় এমন ডিরেক্টরি ক্ষেত্রে একটি ফাইল স্থানান্তর করা হয় নি মুছে ফেলতে পারবেন। -deleteবিকল্প সক্রিয় -depthবিকল্প যাতে খালি ডিরেক্টরি গাছ "নীচে" থেকে মুছে ফেলা হয়।


3
-delete-exec rmdir {} +ইত্যাদি থেকে খুব সুন্দর
lkraav

1
আমি তারকাচিহ্নটি এড়িয়ে যাব কারণ স্থানীয়ভাবে এটি করা থাকলে এবং কেবল পথের পিছনে স্ল্যাশ / পথ রয়েছে। যদি আপনি অ্যাসিরিস্ট্ক ব্যবহার করেন তবে আরএসসিএনসি। Htaccess বা .htpasswd (যদি থাকে) এর মতো লুকানো ফাইলগুলি এড়িয়ে যাবে
স্বেটোস্লাভ মেরিনভ

16

সাধারণভাবে গিলস বলেছিলেন যে rsyncফাইলগুলি সরানোর জন্য কোনও mvএকই কাজ করার সুযোগ নেই যখন একই কাজটি আরও সহজভাবে সম্পন্ন করা হবে এবং সাধারণ ফাইল সিস্টেমের মধ্যে কোনও সম্ভাব্য গতি বাড়ার সম্ভাবনা নেই।

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


4
আমি বলব এটি একটি বিশাল সুবিধা। প্রকৃতপক্ষে, আমি বলতে চাই mvলক্ষ্য এবং উত্স একই পার্টিশনে থাকলে mvকেবলমাত্র একটি অনুলিপি না করে কেবলমাত্র ফাইলের মেটাডেটা সম্পাদনা করা যায়।
নাম

2
আমি rsyncযখন ফোল্ডারটির কাঠামো সংরক্ষণ করতে চাই (তখন আপনি ব্যবহার করেন --relative) তখন এমভিয়ের চেয়ে আমার প্রয়োজন একবার ।
শ্রীধর সারনোবাত

14

A খালি খালি একটি ফোল্ডার বি, বলতে একটি ফোল্ডার এর বিষয়বস্তু স্থানান্তরিত করতে rsync ব্যবহার করে কি কোনও সুবিধা হবে?

আমি নিজেকে এমআইভির চেয়ে আরএসআইসি দ্রুততর অবস্থায় পেয়েছি কারণ এমভি ডিরেক্টরিতে ফাইলের সংখ্যা পরিচালনা করতে পারে না। আমার কাছে সুরক্ষা ক্যামেরা থেকে 1.8 মিলিয়ন ফটো রয়েছে যা 20 দিন ধরে চলেছিল এবং এমভি কমান্ড ব্যর্থতা নিয়ে বেরিয়ে যায় কারণ এটি সংস্থান বরাদ্দ করতে পারে না।

rsync তবে মনে হয় কোনও সমস্যা ছাড়াই সমস্ত ফাইল হ্যান্ডেল করে।


1

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


0

লিনাক্স এমভি কমান্ডের মতো আরএসসিএনসি ব্যবহার করে ফাইলগুলি সরানোর আসলে উপায় নেই। --Remove-উত্স-ফাইলগুলি ব্যবহার করে আপনি মূলত গন্তব্যে ফাইলগুলি অনুলিপি করছেন এবং তারপরে উত্স থেকে ফাইলগুলি (ডিরেক্টরিগুলি বাদ দিয়ে) মুছে ফেলছেন। এটি আপনার ফাইলগুলি সরানোর উদ্দেশ্যে অর্জন করতে পারে তবে আপনি সময় বা i / o অপারেশন বাঁচাতে পারবেন না।

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