ডিরেক্টরি কপির জন্য পিভি এর মাধ্যমে অগ্রগতির তথ্য


14

আমার একটি খুব বড় ডিরেক্টরি কপি করতে হবে (এখানে টেরাবাইটে কথা বলা) এবং অগ্রগতিটি নিরীক্ষণ করতে চাই।

আমি দেখতে পেলাম এটি pvএকটি দুর্দান্ত ইউটিলিটি, তবে ডিরেক্টরিগুলি অনুলিপি করার জন্য আমি কীভাবে এটি ব্যবহার করতে পারি? ( pv src > dstতারা ডিরেক্টরি বলে কাজ করে না)

PS: ওএস এক্স মাউন্টেন সিংহটিতে চলমান, pvম্যাক পোর্টগুলি থেকে ইনস্টল করা হয়েছিল

উত্তর:


21

ব্যবহার rsync --progress [SRC] [DST]

man rsyncপৃষ্ঠাটি পরীক্ষা করে দেখুন কারণ এতে প্রচুর দরকারী বিকল্প রয়েছে। -aসংরক্ষণাগারটির জন্য একটি ভাল শুরু, তবে এটি আপনার সঠিক প্রয়োজনীয়তার উপর নির্ভর করে।

পাইপের মাধ্যমে অনুলিপি অনুলিপিভাবে অনুলিপি প্রক্রিয়াটি ধীরে ধীরে কমিয়ে দেবে, বিশেষত যদি এটি ফাইল ভিত্তিক হয়।


পাইপের মাধ্যমে অনুলিপি করা কেন প্রক্রিয়াটি ধীর করবে? পাইপ দ্বারা সরবরাহিত বাফারিং এবং পাইপের সাথে যুক্ত মাল্টি-টাস্কিংয়ের বিষয়টি আমার বলার ক্ষেত্রে সম্ভবত সহায়তা করবে। (এবং আরএসআইএনসি মাল্টি-প্রসেস এবং অভ্যন্তরীণভাবে আইআইআরসি পাইপ ব্যবহার করে)। ফাইল-ভিত্তিক নয় এমন একটি অনুলিপি প্রক্রিয়া কী?
স্টাফেন চেজেলাস

বাশ সুবিধাজনক তবে দ্রুত নয়। বিশেষত যখন অন্য একটি কমান্ড পাইপ করা হয়।
জিপ্পি

@ স্টাফেনচাজেলাস: কারণ পাইপের বাফারটি মাত্র 8 কেবি। আরএসসিএন-এর মতো প্রোগ্রামটি আরও বৃহত্তর অভ্যন্তরীণ বাফারটি ব্যবহার করতে চাইতে পারে।
Zan Lynx

10

আপনি ব্যবহার করতে পারে tarবা paxবা cpio:

mkdir -p dst &&
  (cd src && tar cf - .) | pv -trb | (cd dst && tar xpf -)

1
উপরন্তু, আপনি একটি যোগ করতে পারেন vথেকে tarফাইলের নাম দেখতে কমান্ড।
পিটারফ

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

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

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

@ টকের কাছে, pvকীভাবে তথ্য স্থানান্তর করতে হবে তা জানার কোনও উপায় নেই। আপনার যদি সেই পরিমাণের একটি অনুমান থাকে তবে আপনি -sবিকল্পটি দিয়ে এটিটি পাস করতে পারেন ( du -sb srcফাইলগুলি যথেষ্ট পরিমাণে বড় হলে জিএনইউ আপনাকে একটি ভাল আনুমানিক ধারণা দেয়)
স্টাফেন চ্যাজেলাস


1

অগ্রগতির তথ্য সহ ডিরেক্টরিগুলি কপির জন্য এখানে কয়েকটি আদেশ রয়েছে।


যদি অনেকগুলি ছোট ফাইল থাকে:

cp -av sourcedir targetdir | pv -l -s filecount > logfile

এটি অনুলিপি করা ফাইলের সংখ্যার ভিত্তিতে অগ্রগতির প্রতিবেদন করবে।

/dev/nullআপনার প্রয়োজন না হলে আপনি পুনর্নির্দেশ করতে পারেন logfile

পেতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন filecount:

find sourcedir | wc -l

যদি কয়েকটি বিশাল ফাইল থাকে:

tar c sourcedir | pv -s size | tar x -C targetdir

এটি অনুলিপি করা বাইটের ভিত্তিতে অগ্রগতির প্রতিবেদন করবে।

targetdir অবশ্যই উপস্থিত থাকতে হবে।

পেতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন size:

du -sh sourcedir

আপনি যদি rsync ব্যবহার করতে চান:

rsync -ai sourcedir/ targetdir/ | pv -l -s filecount > logfile

filecountউপরে প্রদর্শিত হিসাবে পান ।

আপনি যদি একই সিস্টেমে অনুলিপি করছেন তবে rsync -aকার্যত একইরকম cp -a। আরএসআইএনসি সুবিধা হ'ল আপনি যখন নেটওয়ার্কে অনুলিপি করছেন বা আপনি যদি পূর্ববর্তী কোনও অনুলিপি আপডেট করছেন (বা তুলনা করছেন)।

বিস্তারিত জানতে এখানে দেখুন:


0

du -b /directory/একটি সাধারণ অনুলিপি কমান্ড চলাকালীন আপনি উত্স এবং গন্তব্য উভয়কেই করতে পারেন এবং দুটি তুলনা করুন। এটি ঠিক তত কার্যকর এবং এটি কোনও পাইপের মাধ্যমে ধাক্কা দিয়ে অনুলিপি প্রক্রিয়াটি ধীর করে না।


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