লিনাক্সে ডিস্কের স্থানটি কোথায় গিয়েছিল তা সন্ধান করছেন?


532

লিনাক্স সিস্টেম পরিচালনা করার সময় আমি প্রায়শই নিজেকে পার্টিশন পূর্ণ হওয়ার পরে অপরাধীর সন্ধানের জন্য লড়াই করতে দেখি। আমি সাধারণত ব্যবহার করি du / | sort -nrতবে একটি বৃহত ফাইল সিস্টেমে কোনও ফলাফল ফিরে আসার আগে এটি দীর্ঘ সময় নেয়।

এছাড়াও, এটা সাধারণত খারাপ অপরাধী হাইলাইট সফল কিন্তু আমি প্রায়ই পাওয়া করেছি নিজেকে অবলম্বন duছাড়া sort আরও সূক্ষ্ম ক্ষেত্রে এবং তারপর আউটপুট মাধ্যমে টানাজাল ছিল।

আমি একটি কমান্ড লাইন সমাধান পছন্দ করবো যা স্ট্যান্ডার্ড লিনাক্স কমান্ডের উপর নির্ভর করে যেহেতু আমাকে বেশ কয়েকটি সিস্টেম পরিচালনা করতে হবে এবং নতুন সফ্টওয়্যার ইনস্টল করা একটি ঝামেলা (বিশেষত ডিস্কের জায়গার বাইরে থাকলে!)


1
@ বার্ট এখানে পোস্টগুলি উন্নত করার জন্য সময় দেওয়ার জন্য ধন্যবাদ, তবে আমি কি আপনাকে ট্যাগ যুক্ত করার সময় আরও একটু যত্ন নেওয়ার জন্য বলতে পারি? ট্যাগগুলি দৃশ্যমানতার জন্য নয়, তারা প্রশ্নটি বর্ণনা করে। ডিস্ক ট্যাগটি এখানে উপযুক্ত নয় (এর ট্যাগ বিবরণ দেখুন) এবং আপনি এই প্রস্তাবিত সম্পাদনায় যে ট্যাগগুলি যুক্ত করেছেন সেগুলির মধ্যে কমপক্ষে দুটি ট্যাগ উপযুক্ত ছিল না (কালী দেবিয়ান নয়, এবং এতে কোনও পিপিএ জড়িত নেই)।
স্টিফেন কিট

উত্তর:


614

চেষ্টা করুন ncdu, একটি দুর্দান্ত কমান্ড-লাইন ডিস্ক ব্যবহার বিশ্লেষক:

এখানে চিত্র বর্ণনা লিখুন


6
সাধারণত, আমি একটি সাধারণ সমস্যা সমাধানের জন্য কিছু ইনস্টল করতে বলা সম্পর্কে ঘৃণা করি তবে এটি দুর্দান্ত great
gwg

14
sudo apt install ncduউবুন্টু এটি সহজেই পায়। এটি দুর্দান্ত
অরিওন এডওয়ার্ডস

10
আপনি সম্ভবত জানেন যে কোন ফাইল সিস্টেমের স্থান কম। যে ক্ষেত্রে আপনি ncdu -xকেবল ফাইল স্ক্রিনের ডিরেক্টরি ফাইল হিসাবে ডিরেক্টরি এবং ফাইল ডিরেক্টরি ডিরেক্টরি স্ক্যান করা ব্যবহার করতে পারেন ।
লুক কাজিন্স

7
সেরা উত্তর. এছাড়াও: sudo ncdu -rx /রুট এরিয়া ড্রাইভে কেবলমাত্র বৃহত্তম ডায়ার / ফাইলগুলিতে একটি পরিষ্কার পাঠ দেওয়া উচিত। ( -r= কেবল পঠনযোগ্য, -x = একই ফাইল সিস্টেমে থাকুন (যার অর্থ: অন্যান্য ফাইল সিস্টেমের মাউন্টগুলি অতিক্রম করবেন না))
বিএসিয়া

5
আমার এত কম জায়গা আছে যে আমি এনসিডু ইনস্টল করতে পারি না
ক্রিস

338

সরাসরি যান না du /dfআপনাকে ক্ষতিগ্রস্থ করা পার্টিশনটি খুঁজে পেতে ব্যবহার করুন এবং তারপরে duআদেশগুলি চেষ্টা করুন ।

আমি চেষ্টা করতে চাই একটি

# U.S.
du -h <dir> | grep '[0-9\.]\+G'
# Others
du -h <dir> | grep '[0-9\,]\+G'

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

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

grep '^\s*[0-9\.]\+G'

আরও সঠিক (কোনও <1GB ডিরেক্টরি তালিকাভুক্ত করা হবে না)।

আপনি যদি না কোটা আছে, আপনি ব্যবহার করতে পারেন

quota -v

যে ডিস্কটি হোগিং করছে তাদের সন্ধান করতে।


2
এটি খুব তাড়াতাড়ি, সহজ এবং ব্যবহারিক
জাজ্পার

24
grep '[0-9]G'অনেক মিথ্যা ধনাত্মক রয়েছে এবং কোনও দশমিককে বাদ দিয়েছে it এটি আমার পক্ষে আরও ভাল কাজ করেছে:sudo du -h / | grep -P '^[0-9\.]+G'
jchavannes

1
আপনার যদি সত্যিই বড় ডিরেক্টরি থাকে তবে আপনি কেবলমাত্র [GT]পরিবর্তে চাইবেনG
ভিট্রুভিয়াস

1
এমন কোনও সরঞ্জাম রয়েছে যা ফাইল সিস্টেমের সমস্ত ডিরেক্টরি (অলসভাবে) জুড়ে নিয়মিতভাবে ডিস্ক ব্যবহার নিরীক্ষণ করবে? ওয়েব ইউআইতে স্ট্রিম করা যায় এমন কিছু? সাধারণত নরম-রিয়েলটাইম তথ্য।
সিএমসিডিগ্রাগনকাই

20
আমি ব্যবহার করতে চাইdu -h | sort -hr | head
অগুরার

104

প্রথম চেহারাটির জন্য, এর "সারাংশ" ভিউটি ব্যবহার করুন du:

du -s /*

প্রভাবটি হ'ল এর প্রতিটি আর্গুমেন্টের আকার, অর্থাৎ উপরের ক্ষেত্রে প্রতিটি রুট ফোল্ডার মুদ্রণ করা।

তদ্ব্যতীত, জিএনইউdu এবং বিএসডিdu উভয়ই গভীরতা-সীমাবদ্ধ হতে পারে ( তবে পসিক্স duপারে না! ):

  • জিএনইউ (লিনাক্স,…):

    du --max-depth 3
  • বিএসডি (ম্যাকোস,…):

    du -d 3
    

এটি আউটপুট ডিসপ্লেটি গভীরতা 3 এ সীমাবদ্ধ করবে গণনা করা এবং প্রদর্শিত আকার অবশ্যই পুরো গভীরতার মোট অবশ্যই। তবে এটি সত্ত্বেও, প্রদর্শনের গভীরতা সীমাবদ্ধ করা গণনার পক্ষে তীব্র গতি বাড়িয়ে তোলে।

আর একটি সহায়ক বিকল্প হ'ল -h(জিএনইউ এবং বিএসডি উভয়ের পক্ষে শব্দগুলি, তবে কেবলমাত্র পসিক্স-এ নয় du) "মানব-পঠনযোগ্য" আউটপুট (যেমন কিবি, এমআইবি ব্যবহার ইত্যাদি ) for


23
যদি duঅভিযোগ সম্পর্কে -dচেষ্টা --max-depth 5উপকার হবে।
রিঅ্যাকটিভ রেভেন

8
দুর্দান্ত অ্যাঞ্জার আমার জন্য সঠিক বলে মনে হচ্ছে আমার পরামর্শ du -hcd 1 /directory। মানব পাঠযোগ্য, ঘের জন্য সি এবং গভীরতার জন্য ঘ।

আমি ব্যবহার করছিdu -hd 1 <folder to inspect> | sort -hr | head
jonathanccalixto

du --max-depth 5 -h /* 2>&1 | grep '[0-9\.]\+G' | sort -hr | headফিল্টার করতে অনুমতি অস্বীকার করা হয়েছে
srghma

49

আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করে চালাতে পারেন du:

~# du -Pshx /* 2>/dev/null
  • -sবিকল্প সংক্ষিপ্ত বিবরণ ও প্রদর্শন প্রতিটি যুক্তি মোট।
  • h মিয়ো, গিও ইত্যাদি প্রিন্ট করে
  • x = একটি ফাইল সিস্টেমে থাকুন (খুব দরকারী)।
  • P = সিমলিঙ্কগুলি অনুসরণ করবেন না (যা উদাহরণস্বরূপ ফাইলগুলি দুবার গণনা করতে পারে)।

সতর্কতা অবলম্বন করুন, /rootডিরেক্টরিটি প্রদর্শিত হবে না, আপনাকে এটির জন্য দৌড়াতে ~# du -Pshx /root 2>/dev/nullহবে (একবার, আমার /rootডিরেক্টরিটি সম্পূর্ণ হয়েছে কিনা তা উল্লেখ না করে আমি অনেক লড়াই করেছি )।

সম্পাদনা করুন: সংশোধন করা অপশন -পি


2
du -Pshx .* * 2>/dev/null+ লুকানো / সিস্টেম ডিরেক্টরি
মাইখায়লো আদমোভিচ

27

ফাইল সিস্টেমে বৃহত্তম ফাইলগুলি সন্ধান করা সর্বদা দীর্ঘ সময় নিতে চলেছে। সংজ্ঞা অনুসারে আপনাকে বড় ফাইলগুলির সন্ধানে পুরো ফাইল সিস্টেমটি অতিক্রম করতে হবে। সময়ের সমাধানের আগে ফাইলটি প্রস্তুত করার জন্য সম্ভবত আপনার সমস্ত সিস্টেমে ক্রোন জব চালানোই একমাত্র সমাধান।

অন্য একটি জিনিস, du এর x বিকল্পটি du ফাইলগুলি অন্য ফাইল সিস্টেমে অনুসরণ করে মাউন্ট পয়েন্টগুলি রাখতে দরকারী। অর্থাৎ,

du -x [path]

আমি সাধারণত চালিত পুরো কমান্ডটি হ'ল:

sudo du -xm / | sort -rn > usage.txt

-mমানে মেগাবাইটে ফলাফল শূণ্য, এবং sort -rnপ্রথম ফলাফল সবচে সংখ্যা সাজাতে হবে। তারপরে আপনি কোনও সম্পাদকটিতে ইউজ.টেক্সট খুলতে পারবেন এবং সবচেয়ে বড় ফোল্ডার (/ দিয়ে শুরু হবে) শীর্ষে থাকবে।


3
-xপতাকা চিহ্নিত করার জন্য ধন্যবাদ !
সাম্ব

1
"সর্বাধিক সন্ধান করতে দীর্ঘ সময় লাগে .." -> ভাল এটি নির্ভর করে তবে অসম্মতি পোষণ করে: ncduকমপক্ষে dufind
তাত্ক্ষণিকভাবে

যেহেতু আমি মূল হতে না পছন্দ করি, তাই ফাইলটি যেখানে লেখা আছে আমাকে তা গ্রহণ করতে হয়েছিল:sudo du -xm / | sort -rn > ~/usage.txt
ব্রুনো

20

আমি সর্বদা ব্যবহার করি du -sm * | sort -n, যা আপনাকে বর্তমান ওয়ার্কিং ডিরেক্টরিটির সাব-ডিরেক্টরিগুলি মেগাবাইটে কতটা ব্যবহার করে তার একটি বাছাই করা তালিকা দেয়।

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

আপডেট: সাম্প্রতিক সংস্করণগুলিতে আপনি du -sh * | sort -hএমনটি ব্যবহার করতে পারেন যা মানব-পঠনযোগ্য ফাইল আকারগুলি প্রদর্শন করবে এবং সেগুলি অনুসারে বাছাই করবে। (সংখ্যাগুলি কে, এম, জি, ... এর সাথে সংযুক্ত হবে)

লোকেরা কে-ডি -৩ এর কনকরার ফাইল আকারের বিকল্পের সন্ধানের জন্য ফাইললাইটের দিকে নজর দিতে পারে, যদিও এটি তেমন সুন্দর নয়।


এটি কেবল কনকরার ৩.x - ফাইল আকারের ভিউটি কে-ডি-এ এখনও পোর্ট করা যায়নি।

'ডু-শশ * | সাজানো -h 'আমার লিনাক্স (সেন্টোস ডিস্ট্রো) বাক্সে পুরোপুরি কাজ করে। ধন্যবাদ!
পাহাড়ায়োগি

18

আমি এটি বর্তমান ডিরেক্টরি নীচে শীর্ষ 25 সবচেয়ে খারাপ অপরাধীদের জন্য ব্যবহার করি

# -S to not include subdir size, sorted and limited to top 25
du -S . | sort -nr | head -25

এই কমান্ডটি এমন কোনও লুকানো ফোল্ডার সন্ধানের কৌশলটি করেছিল যা সময়ের সাথে সাথে আকারে বাড়তে দেখা যায়। ধন্যবাদ!
thegreendroid

এটি কি বাইটে?
ব্যবহারকারী 0

ডিফল্টরূপে, আমার সিস্টেমে 'du -S' একটি সুন্দর মানব পাঠযোগ্য আউটপুট দেয়। আপনি ছোট ফাইলগুলির জন্য একটি সাধারণ সংখ্যা বাইট পাবেন, তারপরে বড় ফাইলগুলির জন্য একটি 'কেবি' বা 'এমবি' প্রত্যয় সহ একটি নম্বর পাবেন।
সার্জ 10

একটি মানব পাঠযোগ্য আউটপুট পেতে আপনি du -Sh করতে পারেন।
সিদ্ধার্থ

@ সিদ্ধার্থ যদি আপনি যোগ করেন তবে -hএটি সম্ভবত sort -nrকমান্ডের প্রভাব পরিবর্তন করবে - যার অর্থ এই ধরণের কাজটি আর কাজ করবে না, এবং headকমান্ডটি আর কাজ করবে না
ক্লেয়ার ম্যাক্রে

14

পূর্ববর্তী একটি সংস্থায় আমরা ক্রোন জব করতাম যা রাতারাতি চালিত হত এবং কোনও ফাইল নির্দিষ্ট আকারের চেয়ে বেশি চিহ্নিত করত eg

/-আকার + 10000k সন্ধান করুন

আপনি যে ডিরেক্টরিগুলি অনুসন্ধান করছেন সেগুলি সম্পর্কে আপনি আরও বাছাই করতে এবং অফলাইনে যেতে পারে এমন কোনও দূরবর্তী মাউন্ট ড্রাইভের জন্য নজর রাখতে পারেন।


আপনি -x আপনার ফাইন্ড কমান্ডের প্রারম্ভিক বিন্দুর চেয়ে অন্য ডিভাইসে ফাইল খুঁজে পাবেন না তা নিশ্চিত করতে আপনি অনুসন্ধানের বিকল্পটি ব্যবহার করতে পারেন । এটি দূরবর্তীভাবে মাউন্ট করা ড্রাইভগুলির সমস্যার সমাধান করে।
rjmunro

10

একটি বিকল্প হ'ল ক্রুশ জব হিসাবে আপনার ডু / সাজানোর কমান্ড চালানো এবং কোনও ফাইলে আউটপুট করা, সুতরাং আপনার যখন প্রয়োজন হবে তখনই এটি সেখানে রয়েছে।


9

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


2
এটি এসএসএইচ, এফটিপি, এসএমবি এবং ওয়েবডিএভি এর মাধ্যমে দূরবর্তী ফোল্ডারগুলিও স্ক্যান করতে পারে।

এটা অসাধারণ. কিছু জিনিস কেবলমাত্র একটি জিইউআইয়ের সাথে তাদের কল্পনা করার জন্য আরও ভাল কাজ করে এবং এটি তাদের মধ্যে একটি! ক্র্যাশপ্ল্যানের জন্য আমার সার্ভারে একটি এক্স-সার্ভার দরকার, সুতরাং এটিও এতে কাজ করে।
টাইমলমার

9

আমি ব্যবহার করি

du -ch --max-depth=2 .

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


9

আমি দ্বিতীয় যাচ্ছে xdiskusage। তবে আমি নোটটিতে যুক্ত করতে যাচ্ছি যে এটি আসলে একটি ডু ফ্রন্ট্যান্ড এবং এটি কোনও ফাইল থেকে ডু আউটপুট পড়তে পারে। সুতরাং আপনি du -ax /home > ~/home-duআপনার সার্ভারে scpফিরে ফাইলটি চালাতে পারেন এবং তারপরে এটি গ্রাফিকভাবে বিশ্লেষণ করতে পারেন। বা এটি ssh মাধ্যমে পাইপ।


6

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

উদাহরণস্বরূপ, নীচে এমন কোনও ডিরেক্টরি প্রদর্শন করে যা প্রায় 500 এমবি-র বেশি ব্যবহার করে।

du -kx / | awk '{ if ($1 > 500000) { print $0} }'

উপরেরটিকে আরও কিছুটা পুনরায় ব্যবহারযোগ্য করে তুলতে, আপনি আপনার .bashrc এ কোনও ফাংশন সংজ্ঞায়িত করতে পারেন, (বা আপনি এটি একটি স্বতন্ত্র লিপিতে তৈরি করতে পারেন)।

dubig() {
    [ -z "$1" ] && echo "usage: dubig sizethreshMB [dir]" && return
    du -kx $2 | awk '{ if ($1 > '$1'*1024) { print $0} }'
}

সুতরাং dubig 200 ~/ডিরেক্টরি বেশি 200 মেগাবাইট ব্যবহারের জন্য পণ্য (symlinks বন্ধ ডিভাইসটিতে নিম্নলিখিত ছাড়া) home ডিরেক্টরিতে অধীনে দেখায়।


এটি দুঃখের বিষয় যে কয়েক ডজন গ্রেপ হ্যাকগুলি আরও বেশি উত্সাহিত। ওহ এবং du -kএকেবারে নিশ্চিত হয়ে যাবে যে ডু কেবি ইউনিট ব্যবহার করছে
nddou

-কে সম্পর্কে ভাল ধারণা। সম্পাদনা করা হয়েছে।
মার্ক বর্গারডিং

এমনকি আরও সহজ এবং আরও du -kx $2 | awk '$1>'$(($1*1024))print $0
দৃust়

শুভ পয়েন্ট @ তারিখ_পরিবর্তনকালীন 858। আমি জানি (জাল / ফ্রি-বিএসডি এবং জিএনইউ) এর সকল সংস্করণে এটি সত্য। @ মার্ক-বারগার্ডিং এর অর্থ এটির অর্থ হল যে আপনি আপনার প্রথম উদাহরণটিকে ন্যায়সঙ্গত করতে পারবেনdu -kx / | awk '$1 > 500000'
এনডেমো

@ মার্ক-বারগার্ডিং: আপনার যদি কোথাও মাত্র কয়েক কেবাইট বাকি থাকে তবে আপনি ডু এর পুরো আউটপুটটিও রাখতে পারেন du -kx / | tee /tmp/du.log | awk '$1 > 500000'। এটি অত্যন্ত সহায়ক কারণ যদি আপনার প্রথম ফিল্টারিং ফলদায়ক হয়ে যায় তবে আপনি এই জাতীয় মানগুলি ব্যবহার করে দেখতে পারেন awk '$1 > 200000' /tmp/du.logবা sort -nr /tmp/du.log|lessপুরো ফাইল সিস্টেমটি পুনরায় স্ক্যান না করেই এর মতো সম্পূর্ণ আউটপুটটি পরীক্ষা করতে পারেন
এনডেমো

4

আমি ডু (1) এর গ্রাফিকাল বিকল্প হিসাবে ভাল পুরানো xdiskusage পছন্দ করি ।


প্রশ্নের এই অংশটি নোট করুন: "আমি একটি কমান্ড লাইন সমাধান পছন্দ করি যা স্ট্যান্ডার্ড লিনাক্স কমান্ডগুলির উপর নির্ভর করে ..."
nddou

4

আমি একটি ওভারভিউ পেতে নীচে ব্যবহার করতে পছন্দ করি এবং সেখান থেকে নিচে নামাতে ...

cd /folder_to_check
du -shx */

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


4

এখানে উল্লেখ করা হয়নি তবে ফাইলগুলি মোছা / ঝুলিয়ে দেওয়ার ক্ষেত্রে আপনার lsof পরীক্ষা করা উচিত। আমি রানওয়ে ক্রোনজব থেকে একটি 5.9 গিগাবাইট মুছে ফেলা টিএমপি ফাইল পেয়েছি।

https://serverfault.com/questions/207100/how-can-i-find-phantom-stores-usage আমাকে উক্ত ফাইলটির ক্রোন মালিক (ক্রোন) খুঁজে পেতে সহায়তা করেছিল এবং তারপরে আমি /proc/{cron id}/fd/{file handle #}ফাইলটি কম খুঁজে পেতে সক্ষম হয়েছি দৌড়ে পালিয়ে যাওয়ার প্রশ্নটি সমাধান করুন, এবং এরপরে স্থান পরিষ্কার করতে ""> ফাইলটিকে প্রতিধ্বন করুন এবং ক্রোনকে চূড়ান্তভাবে নিজেকে বন্ধ করুন।


3

টার্মিনাল থেকে, আপনি ডাত্রির সাথে ডিস্ক ব্যবহারের একটি ভিজ্যুয়াল উপস্থাপনা পেতে পারেন

এটি খুব দ্রুত এবং হালকা কারণ এটি মরিচায় প্রয়োগ করা হয়েছে

dutree

$ dutree -h
Usage: dutree [options] <path> [<path>..]

Options:
    -d, --depth [DEPTH] show directories up to depth N (def 1)
    -a, --aggr [N[KMG]] aggregate smaller than N B/KiB/MiB/GiB (def 1M)
    -s, --summary       equivalent to -da, or -d1 -a1M
    -u, --usage         report real disk usage instead of file size
    -b, --bytes         print sizes in bytes
    -f, --files-only    skip directories for a fast local overview
    -x, --exclude NAME  exclude matching files or directories
    -H, --no-hidden     exclude hidden files
    -A, --ascii         ASCII characters only, no colors
    -h, --help          show help
    -v, --version       print version number

ওয়েবসাইটে সমস্ত ব্যবহারের বিশদটি দেখুন


2

কমান্ড লাইন du এর জন্য (এবং এটির বিকল্পগুলি) সেরা উপায় বলে মনে হচ্ছে। ডিস্কহোগ দেখে মনে হচ্ছে এটি ক্রোন জব থেকে ডু / ডিএফ তথ্য ব্যবহার করে তাই পিটারের পরামর্শটি সম্ভবত সহজ এবং কার্যকরের সর্বোত্তম সমন্বয়।

( ফাইললাইট এবং কেডিআরস্ট্যাট জিইউআইয়ের জন্য আদর্শ))


2

তোমার মত মান সরঞ্জাম ব্যবহার করতে পারেন findএবং sortআপনার ডিস্ক স্পেস ব্যবহার বিশ্লেষণ করতে।

তালিকা ডিরেক্টরি তাদের আকারের অনুসারে সাজানো:

find / -mount -type d -exec du -s "{}" \; | sort -n

তালিকা ফাইল তাদের আকারের অনুসারে সাজানো:

find / -mount -printf "%k\t%p\n" | sort -n

1
আমি সর্বাধিক আকারে সাজানো ক্রম সনাক্ত করার জন্য এটি সেরা উত্তর বলে মনে করি
বিমল কৃষ্ণ

2

সম্ভবত লক্ষ্য করার মতো বিষয় mc(ডিফল্ট কমান্ডার, একটি ক্লাসিক পাঠ্য-মোড ফাইল ম্যানেজার) ডিফল্টরূপে কেবলমাত্র ডিরেক্টরি ইনোডের আকার দেখায় (সাধারণত 4096) তবে CtrlSpaceমেনু সরঞ্জামগুলির সাহায্যে বা সরঞ্জামের সাহায্যে আপনি নির্বাচিত ডিরেক্টরি দ্বারা কোনও স্থান পঠনযোগ্য স্থান দেখতে পাবেন বিন্যাস (যেমন, কিছু পছন্দ 103151M)।

উদাহরণস্বরূপ, নীচের ছবিতে 2018 এবং 2017 এর ভ্যানিলা টেক্স লাইভ বিতরণগুলির সম্পূর্ণ আকার দেখানো হয়েছে, যখন 2015 এবং 2016 এর সংস্করণগুলি কেবল ইনোডের আকার দেখায় (তবে তাদের সত্যিকার অর্থে প্রতিটি 5 গিগাবাইটের কাছাকাছি রয়েছে)।

এটি হ'ল, CtrlSpaceএকটির জন্য একটি অবশ্যই করা উচিত, কেবল প্রকৃত ডিরেক্টরি স্তরটির জন্য, তবে এটি এত তাড়াতাড়ি এবং কার্যকর যখন আপনি যখন নেভিগেট করছেন mcতখন সম্ভবত আপনার প্রয়োজন হবে না ncdu(এটি সত্যিকার অর্থে কেবল এই উদ্দেশ্যেই আরও ভাল)। অন্যথায়, আপনি ncduথেকে চালাতে পারেন mcmcঅন্য টার্মিনাল থেকে প্রস্থান বা প্রবর্তন ছাড়াই ।

mwe


1

প্রথমে আমি ডিরেক্টরিগুলির মতো আকারগুলি পরীক্ষা করে দেখি:

du -sh /var/cache/*/

1

আপনি যদি জানেন যে গত কয়েক দিনে বড় ফাইল যুক্ত হয়েছে (তবে, 3), তবে আপনি ls -ltraসম্প্রতি যুক্ত হওয়া ফাইলগুলি আবিষ্কার করতে " " এর সাথে মিল রেখে একটি ফাইন্ড কমান্ড ব্যবহার করতে পারেন :

find /some/dir -type f -mtime -3 -exec ls -lart {} \;

এটি আপনাকে কেবল ফাইলগুলি (" -type f") দেবে, ডিরেক্টরিগুলি নয়; গত 3 দিনের (" -mtime -3") সময় পরিবর্তনের সময়যুক্ত ফাইলগুলি এবং ls -lartপ্রতিটি পাওয়া ফাইলের (" -exec" অংশ) এর বিরুদ্ধে " " চালিত করে।


1

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

আমরা এটি দ্বারা করতে পারেন

  • একটি ফাইলের মধ্যে du আউটপুট সংরক্ষণ
  • পুনরাবৃত্তভাবে ফলাফল মাধ্যমে গ্রেপিং

এটাই:

# sum up the size of all files and directories under the root filesystem
du -a -h -x / > disk_usage.txt
# display the size of root items
grep $'\t/[^/]*$' disk_usage.txt

এখন বলি / usr খুব বড় প্রদর্শিত হয়

# display the size of /usr items
grep $'\t/usr/[^/]*$' disk_usage.txt

এখন যদি / usr / স্থানীয় সন্দেহজনকভাবে বড় হয়

# display the size /usr/local items
grep $'\t/usr/local/[^/]*$' disk_usage.txt

এবং তাই ...


1

আমি এই কমান্ডটি 100 এমবি এর চেয়ে বড় ফাইলগুলি সন্ধান করতে ব্যবহার করেছি:

find / -size +100M -exec ls -l {} \;

0

আমার নিকৃষ্টতম অপরাধী (গুলি) duমানব পাঠযোগ্য আকারে আউটপুটটি পাইপ করা egrepএবং নিয়মিত অভিব্যক্তির সাথে মিলে যাওয়ার সফলতা পেয়েছি ।

উদাহরণ স্বরূপ:

du -h | egrep "[0-9]+G.*|[5-9][0-9][0-9]M.*"

যা আপনাকে 500 ম্যাগ বা তারও বেশি কিছু ফিরিয়ে দেয়।


: তার জন্যে ব্যবহার awk - গাণিতিক অপারেশন জন্য grep ব্যবহার করবেন না du -k | awk '$1 > 500000'। প্রথম চেষ্টা করে বোঝা, সম্পাদনা করা এবং সঠিক হওয়া অনেক সহজ।
nddou

0

আপনি যদি গতি চান, আপনি যে ফাইল সিস্টেমে মনিটরিং করতে চান তার উপর কোটা সক্ষম করতে পারেন (আপনার কোনও ব্যবহারকারীর জন্য কোটা সেট করার দরকার নেই), এবং প্রতিটি ব্যবহারকারীর দ্বারা ব্যবহৃত ডিস্কের স্থান তালিকাভুক্ত করতে কোটা কমান্ড ব্যবহার করে এমন স্ক্রিপ্ট ব্যবহার করুন। এই ক্ষেত্রে:

quota -v $user | grep $filesystem | awk '{ print $2 }'

নির্দিষ্ট ফাইল সিস্টেমের নির্দিষ্ট ব্যবহারকারীর জন্য আপনাকে ব্লকগুলিতে ডিস্কের ব্যবহার দেবে। আপনি কয়েক সেকেন্ডের মধ্যে এইভাবে ব্যবহারগুলি পরীক্ষা করতে সক্ষম হবেন।

কোটা সক্ষম করার জন্য আপনার / etc / fstab ফাইলের ফাইল-সিস্টেম অপশনে usrquota যুক্ত করতে হবে এবং তারপরে সম্ভবত পুনরায় বুট করুন যাতে কোটাচাঁস বলার আগে একটি নিষ্ক্রিয় ফাইল সিস্টেমের উপর কোটাচেক চালানো যেতে পারে।


0

এখানে একটি ছোট অ্যাপ্লিকেশন যা কোনও ডিস্ক বা ডিরেক্টরিতে টিউমারগুলি খুঁজে পেতে গভীর নমুনা ব্যবহার করে। এটি ডিরেক্টরি ট্রিটিকে দুবার হাঁটেন, একবার এটি পরিমাপ করার জন্য, এবং দ্বিতীয় বার ডিরেক্টরিতে 20 "এলোমেলো" বাইটে পাথগুলি মুদ্রণ করে।

void walk(string sDir, int iPass, int64& n, int64& n1, int64 step){
    foreach(string sSubDir in sDir){
        walk(sDir + "/" + sSubDir, iPass, n, n1, step);
    }
    foreach(string sFile in sDir){
        string sPath = sDir + "/" + sFile;
        int64 len = File.Size(sPath);
        if (iPass == 2){
            while(n1 <= n+len){
               print sPath;
               n1 += step;
            }
        }
        n += len;
    }
}

void dscan(){
    int64 n = 0, n1 = 0, step = 0;
    // pass 1, measure
    walk(".", 1, n, n1);
    print n;
    // pass 2, print
    step = n/20; n1 = step/2; n = 0;
    walk(".", 2, n, n1);
    print n;
}

আউটপুটটি আমার প্রোগ্রাম ফাইল ডিরেক্টরিতে এটির মতো দেখাচ্ছে:

 7,908,634,694
.\ArcSoft\PhotoStudio 2000\Samples\3.jpg
.\Common Files\Java\Update\Base Images\j2re1.4.2-b28\core1.zip
.\Common Files\Wise Installation Wizard\WISDED53B0BB67C4244AE6AD6FD3C28D1EF_7_0_2_7.MSI
.\Insightful\splus62\java\jre\lib\jaws.jar
.\Intel\Compiler\Fortran\9.1\em64t\bin\tselect.exe
.\Intel\Download\IntelFortranProCompiler91\Compiler\Itanium\Data1.cab
.\Intel\MKL\8.0.1\em64t\bin\mkl_lapack32.dll
.\Java\jre1.6.0\bin\client\classes.jsa
.\Microsoft SQL Server\90\Setup Bootstrap\sqlsval.dll
.\Microsoft Visual Studio\DF98\DOC\TAPI.CHM
.\Microsoft Visual Studio .NET 2003\CompactFrameworkSDK\v1.0.5000\Windows CE\sqlce20sql2ksp1.exe
.\Microsoft Visual Studio .NET 2003\SDK\v1.1\Tool Developers Guide\docs\Partition II Metadata.doc
.\Microsoft Visual Studio .NET 2003\Visual Studio .NET Enterprise Architect 2003 - English\Logs\VSMsiLog0A34.txt
.\Microsoft Visual Studio 8\Microsoft Visual Studio 2005 Professional Edition - ENU\Logs\VSMsiLog1A9E.txt
.\Microsoft Visual Studio 8\SmartDevices\SDK\CompactFramework\2.0\v2.0\WindowsCE\wce500\mipsiv\NETCFv2.wce5.mipsiv.cab
.\Microsoft Visual Studio 8\VC\ce\atlmfc\lib\armv4i\UafxcW.lib
.\Microsoft Visual Studio 8\VC\ce\Dll\mipsii\mfc80ud.pdb
.\Movie Maker\MUI\0409\moviemk.chm
.\TheCompany\TheProduct\docs\TheProduct User's Guide.pdf
.\VNI\CTT6.0\help\StatV1.pdf
7,908,634,694

এটি আমাকে বলে যে ডিরেক্টরিটি 7.9gb, এর মধ্যে

  • ~ 15% ইন্টেল ফোর্টরান সংকলক যায়
  • % 15% ভিএস। নেট 2003 এ যায়
  • ~ 20% ভিএস 8 এ যায়

এগুলির কোনওটি আনলোড করা যায় কিনা তা জিজ্ঞাসা করা যথেষ্ট সহজ।

এটি ফাইলের প্রকারগুলি সম্পর্কেও জানায় যা ফাইল সিস্টেম জুড়ে বিতরণ করা হয় তবে একসাথে নেওয়া স্থান সংরক্ষণের একটি সুযোগের প্রতিনিধিত্ব করে:

  • ~ 15% মোটামুটি .cab এবং .MSI ফাইলে যায়
  • ~ 10% মোটামুটি পাঠ্য ফাইলগুলিতে লগ করতে যায়

এটি সেখানে অন্যান্য প্রচুর জিনিসগুলিও দেখায়, যা আমি সম্ভবত "স্মার্টডিভিসিস" এবং "সিই" সমর্থন (15%) সমর্থন না করেই করতে পারি।

এটি লিনিয়ার সময় নেয়, তবে এটি প্রায়শই করা হয় না।

এটি পাওয়া জিনিসগুলির উদাহরণ:

  • অনেক সংরক্ষিত কোড সংগ্রহস্থলগুলিতে ডিএলএল ব্যাকআপ কপি, যে না সত্যিই প্রয়োজন সংরক্ষিত করা
  • অস্পষ্ট ডিরেক্টরিতে সার্ভারে কারও হার্ড ড্রাইভের একটি ব্যাকআপ কপি
  • অস্থায়ী ইন্টারনেট ফাইল
  • প্রাচীন ডক এবং সাহায্যের ফাইলগুলির অতীত প্রয়োজন

0

আমার অনুরূপ সমস্যা ছিল তবে এই পৃষ্ঠায় উত্তরগুলি যথেষ্ট ছিল না। আমি নিম্নলিখিত কমান্ডটি তালিকার জন্য সবচেয়ে কার্যকর বলে মনে করেছি:

du -a / | sort -n -r | head -n 20

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


ভাল কথা তবে এটি একটি মন্তব্য হওয়া উচিত এবং নিজেই উত্তর নয় - এই প্রশ্নটি অনেকগুলি উত্তর থেকে ভুগছে
nddou

0

আপনার সমস্ত ডিস্কের একটি অনলাইন ওয়েব প্রতিবেদন তৈরি করতে আপনি DiskReport.net ব্যবহার করতে পারেন ।

অনেক রান দিয়ে এটি আপনাকে আপনার সমস্ত ফোল্ডারের ইতিহাসের গ্রাফ প্রদর্শন করবে, কী বৃদ্ধি পেয়েছে তা সহজেই খুঁজে পাওয়া যায়


এই সরঞ্জামটি প্রশ্নের দুটি মূল পয়েন্টের সাথে মেলে না "আমি প্রায়শই নিজেকে পার্টিশন পূর্ণ হওয়ার পরে অপরাধীর
সন্ধানের জন্য লড়াই

0

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

উদাহরণ স্ক্রিনশট:
JDiskReport স্ক্রিনশট

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


( সদৃশ প্রশ্নের উপর একই লেখকের উত্তর থেকে এখানে অনুলিপি করা হয়েছে )

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