دوشنبه, 23 اسفند 1395 13:59

چگونه پوشه‌ها و فایل‌هایی که بیشترین حجم رو در سرور مجازی یا اختصاصی لینوکس اشغال کرده اند لیست کنیم

یادمه یه بار یه ایمیلی از طرف دایرکت ادمینِ یکی از سرورهای آلمانم برام ارسال شد که تا حالا ندیده بودم و توی اون ایمیل، این پیام ارسال شده بود که:

Warning: The disk usage for one or more of your partitions is running low

برام خیلی سوال شده بود که در عرض کمتر از یه هفته چطور ممکنه بیش از ۱۰۰ گیگ از حجم این سرورمجازی اشغال شده باشه؟! حدس زدم که حتما مشکلی باید باشه. بنابراین از ترمینال (Putty) استفاده کردم و با استفاده از SSH به این سرور متصل شدم.

 

مراحل لیست نمودن فولدرها و فایل های دارای بیشترین حجم در سرور لینوکس

مرحله 1: قبل از هر کاری با دستور زیر به ریشه‌ی سرور (root) رفتم:

cd /

 

مرحله 2: حال که در ریشه اصلی سرور قرار داریم فضای خالی کل سرور را با دستور زیر بررسی می‌کنیم:

df -h

 

تصوری از محیط SSH برای بررسی فضای خالی لینوکس

 

با این دستور متوجه شدم که کل فضای سرور اشغال شده (تصاویر بالا) و دلیل نمایش پیغام هشدار از طرف دایرکت ادمین هم همین بوده است.

 

مرحله 3: حال برای اینکه متوجه شوم کدام فولدرها یا فایل‌ها بیشترین حجم را اشغال کرده‌اند از دستور زیر استفاده می‌کنم:

du -hsx * | sort -rh | head -10

 

دستور ssh برای لیست 10 تا از فولدرها و فایل‌هایی که بیشترین حجم را اشغال کرده اند

 

با دستور بالا ۱۰ تا از فولدرها و فایل‌هایی که بیشترین حجم را اشغال کرده‌اند به ترتیب از بیشترین تا کمترین حجم، لیست خواهند شد. و کاملا مشخصه که اگه در دستور بالا بجای عدد ۱۰ از هر عددی استفاده کنیم، به همون تعداد فایل یا فولدر لیست میشه. اما مشکلی که هست اینه که این لیست فقط شامل فولدرها و فایل‌هایی هست که توی ریشه هستند و نشون نمیده توی اون‌ها دقیقا کدوم فایل یا فولدر حجم رو اشغال کرده، مثلا توی عکس زیر پوشه var حدود 47 گیگ رو اشغال کرده، اما نمی‌دونیم داخل var چه فایل‌ها و فولدرهایی بیشترین حجم رو اشغال کردن بنا براین باید وارد پوشه var بشیم و مجددا دستور مرحله ۳ رو تکرار کنیم تا ۱۰ تا از فایل‌ها و فولدرهای داخل var که بیشترین حجم از فضا رو اشغال کردن لیست بشن. و این کار رو تا جاییکه به درونی‌ترین فایل یا فولدر مورد نظر برسیم تکرار میکنیم.

 

هر سوالی دارین از قسمت پایین (نظرات) بپرسید، خوشحال میشم بتونم کمکی کرده باشم.

دیدگاه‌ها  

mahsa
# mahsa پاسخ دادن 1397-02-19 19:11
سلام در توضیح اخر که گفتید باید وارد پوشه var بشیم و دستورات تکرار کنیم چطور باید وارد پوشه var شیم و بعد لیست کردن چطور پاک کنیم؟
مصطفی رامندی
# مصطفی رامندی پاسخ دادن 1397-02-26 18:26
سلام
برای وارد شدن به پوشه var کافیه که بنویسید:
cd var
و برای حذف همه‌ی اطلاعات درونش کافیه بنویسید:
rm -rf *

فقط هشدار بدم که با اجرای دستور بالا، کا اطلاعات پوشه‌ی var حذف میشن! و این کاملا کار اشتباهیه. بهتر اینه که بعد از دستور cd var مجددا دستور زیر رو که لیست ۱۰ پوشه‌ی پرحجم‌تر از بقیه رو لیست میکنه اجرا کنیم:
du -hsx * | sort -rh | head -10
و بعدش که لیست پوشه‌های پر حجم رو دیدیم با دستور cd وارد پوشه‌ای که بیشترین حجم رو اشغال کرده بشیم و اون‌وقته که میتونیم به راحتی دستور زیر رو اجرا کنیم:
rm -rf *

دیدگاه شما