ব্যাশে কম ওভারহেড সহ ডিস্কের ব্যবহার কীভাবে দেখবেন?


8
du -csh /

উপরেরগুলিতে গণনা করতে প্রচুর পরিমাণ সময় লাগবে, কম ওভারহেড সহ কম সঠিক ফলাফল দেখার কোনও উপায় আছে কি?

হালনাগাদ

আমি যা জানতে চাই তা হ'ল একটি নির্দিষ্ট ডিরেক্টরিতে মোট আকার।

উত্তর:


9

যতদূর আরও অনুকূলিত সংস্করণ du, আমি তার একটি সম্পর্কে অবগত নই। যে বিষয়গুলি মাথায় আসে সেগুলি হ'ল:

  1. এই ফাইলগুলি একটি র‌্যাম ডিস্ক বা এর মতো অন্য কিছুতে সঞ্চয় করুন।
  2. যদি কেবল একটি অ্যাপ্লিকেশন এই ফোল্ডার এবং এর উপ ফোল্ডারে লিখিত হয়, তবে অ্যাপ্লিকেশনটিকে ট্র্যাক রাখতে হবে।
  3. যদি এই সমস্ত ফাইলগুলি একই আকারের এবং সেগুলির পরিমাণ সমানভাবে ডিরেক্টরিগুলির মধ্যে বিতরণ করা হয় তবে আপনি কেবল উপ ডিরেক্টরিগুলির সংখ্যা গণনা করতে পারেন এবং প্রতি ডিরেক্টরি ফাইল এবং তারপরে ফাইলের আকারের দ্বারা গুণ করতে পারেন। আপনি কেবলমাত্র যদি আপনার কাছে কেবল একটি ডিরেক্টরি গভীর কাঠামো ( stat -c '%h') - 2 থাকে তবে কেবলমাত্র ডিরেক্টরিটির জন্য হার্ড লিঙ্ক গণনাটি ব্যবহার করে আপনি এটি করতে পারেন ।
  4. এই সমস্ত ফাইল একটি নির্দিষ্ট ব্যবহারকারীর মালিকানাধীন করুন এবং কোটা প্রক্রিয়াটি ব্যবহার করুন।
  5. একটি ডেডিকেটেড পার্টিশন ব্যবহার করুন এবং কেবল ডিএফ ব্যবহার করুন। ভার্চুয়াল ফাইল সিস্টেম (একটি ফাইল সিস্টেমের একটি ফাইল যা লুপব্যাকের মাধ্যমে মাউন্ট করা হয়) এটিও এটি করতে পারে।

এই সমস্তগুলির মধ্যে, কোটা এবং উত্সর্গীকৃত পার্টিশন বিকল্পগুলি সম্ভবত সবচেয়ে সহজ এবং সবচেয়ে কার্যকর।


6

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

দুর্ভাগ্যক্রমে, ডু রান দ্রুত করার কোনও উপায় নেই, কেবল কাজের আশপাশে।

  • ব্যাচ-মোডে 'ডু' চালান এবং লাইভ ফলাফল সহ লাইভ করুন
  • একটি নতুন ফাইল-সিস্টেম তৈরি করুন এবং পরিবর্তে 'df' ব্যবহার করুন
  • একটি বৃহত ফাইল তৈরি করুন যা আপনার ডিরেক্টরিটি ধরে রাখবে, লুপব্যাক-মাউন্ট করবে, এটি ফর্ম্যাট করবে এবং সেই নতুন মাউন্ট-পয়েন্টের পরিবর্তে 'ডিএফ' ব্যবহার করবে। আপনার যদি আরও স্থানের প্রয়োজন হয় তবে লুপব্যাক মাউন্টটি আনমাউন্ট করুন, ফাইলটি প্রসারিত করুন এবং পুনঃনির্মাণ করুন।

+1 এটি একটি খুব দরকারী উত্তর।
রিচার্ড হলোয়ে

4
du -h --max-depth=1

আপনার বর্তমান ওয়ার্কিং ডিরেক্টরি থেকে আপনাকে মানব কেবি / এমবি / জিবি ফর্ম্যাটে আকার দেয়।


আমি মনে করি তারা জানতে চায় কেন ডু জেনারেট এবং জবাব দিতে এত দিন লাগে। আমি মনে করি উইন্ডোজগুলিও একই কাজ করে। আপনি যদি কোনও ডিরেক্টরিতে ডানদিকে ক্লিক করেন তবে আপনাকে প্রতিটি উপ ডিরেক্টরিটির আকার গণনা করার সময় অপেক্ষা করতে হবে। ফাইল সিস্টেম যেমন কাজ করে ঠিক তেমনি এটি।
ইউনিক্স জেনিটার

হ্যাঁ, যদি না তারা কোনও ইনডেক্সিং পরিষেবা বা কিছু চালায়।
ডেভিড রিকম্যান

3

স্ট্যান্ডার্ড সরঞ্জামগুলির সাহায্যে আপনাকে প্রতিবার মোট আকারটি জানতে চাইলে ডিরেক্টরিতে প্রতিটি ফাইলের আকার নিতে হবে। এটি করার সম্ভাব্য আরও কার্যকর উপায় হ'ল "ডিরেক্টরি আকারের মনিটর" রাখা, যা ডিরেক্টরিটির বর্তমান আকারের উপর নজর রাখে। এরকম কোনও জিনিস নেই (যা আমি জানি) তবে আপনি এটি দিয়ে বাস্তবায়ন করতে পারেন inotify। সম্ভবত বাশ (এবং inotify-tools) দিয়ে নয়, তবে আপনি সম্ভবত পাইথন এবং পাইয়নোটাইফ ব্যবহার করতে পারেন।


2

আপনি gt5দরকারী হতে পারে। এটি সর্বাধিক সাম্প্রতিক duতথ্য সঞ্চয় করে এবং পরের বার এটি চালানোর চেয়ে আলাদা হয়। এটি পাঠ্য-মোড ব্রাউজার ব্যবহার করে এর আউটপুট প্রদর্শন করে links


2

এছাড়াও, du ব্যবহার করে -x বিকল্পটি বিবেচনা করুন - "যদি একটি ফাইল সিস্টেম" আপনার কাজটি করে থাকে

du -xh / --max-depth=1 

আপনি কেবল আপনার মূল বিভাজনে ডিস্ক ব্যবহারের সংক্ষিপ্তসার দেখতে পাবেন এবং এটি / proc, / sys, / dev ইত্যাদি যোগ করার চেষ্টা করবে না ...


2

যদি আপনি কেবল রুট ফাইল সিস্টেমের জন্য ডিস্ক ব্যবহার করতে চান, তবে

ডিএফ -এইচ /


1

না। আপনি কি কোনও সময়ে একটি টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো করে রাতারাতি চালানোর জন্য সেট করতে পারেন, তাই আপনি তত্ক্ষণাত্ যথেষ্ট ডেটা উপলব্ধ করেন নি?

নোট করুন যে উইন্ডোজের অধীনে বৃহত সংখ্যক ফাইল উপস্থিত ফোল্ডার দ্বারা ব্যবহৃত ডিস্কের স্থানটি পরিমাপ করতে কিছুটা সময় লাগে।




0

সম্ভবত

df -h

সংক্ষিপ্ত, সংক্ষিপ্ত উত্তর থেকে অতিরিক্ত পাঠ্য সার্ভারফ্ল্টকে আমি মানুষ বলে ভাবা যথেষ্ট নয়।


কিন্তু আমি মোট আকার একটি নির্দিষ্ট ডিরেক্টরির অধীনে জানা প্রয়োজন
Apache

তারপরে du ব্যবহার করতে হবে
ইউনিক্স জেনিটার

তবে উইন্ডোতে, আমি মোট ব্যবহৃত স্থান দেখতে পাচ্ছি কোন ওভারহেড নেই, কেন লিনাক্সে থাকতে পারে না?
এপাচি

তুমি কি সিরিয়াস?
এনটিএফএস এক্স 3

1
@ পেচে, ওহ ওহেড রয়েছে, প্রচুর 10-20 এমবি ফাইল সহ 20 গিগাবাইট ফোল্ডারের আকার দেখার চেষ্টা করুন। ওভারহেড ডিফ আছে।
সাইফার

0

কেবলমাত্র সেই ডিরেক্টরিতে স্থানটি অনুসন্ধান করার জন্য এটির পরিবর্তে তালিকাবদ্ধ করুন /। ডিরেক্টরিগুলির অধীনে স্থান অনুসন্ধান করতে fooএবং barউভয়কে তালিকাবদ্ধ করুন:

du -csh foo bar

0

ফাইল সিস্টেমটি প্রায়শই পরিবর্তিত না হলে ডিস্কের ব্যবহার গণনা করার জন্য আপনার ডনটিফাই ব্যবহার করা উচিত।

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