تکنولوژی

دستوراتی برای بررسی استفاده از فضای دیسک و پاکسازی آن در لینوکس

در سیستم عامل لینوکس و BSD و به طور کلی سیستم‌های مبتنی بر یونیکس، راه‌های مختلفی برای بررسی اطلاعات مرتبط با سخت‌افزار وجود دارد. به عنوان مثال می‌توانید با اجرا کردن ترمینال و تایپ کردن دستور cat /proc/cpuinfo، اطلاعات مربوط به پردازنده را دریافت کنید! اطلاعاتی که ارایه می‌شود معمولاً کامل است اما خوانایی خوبی ندارد. لذا در این مقاله می‌خواهیم روش چک کردن مقدار استفاده از پردازنده و مصرف RAM در لینوکس به کمک اپلیکیشن‌های گرافیکی‌تر را بررسی کنیم.

در ادامه به معرفی روش‌هایی برای بررسی میزان مصرف پردازنده و حافظه در لینوکس اوبونتو می‌پردازیم که به صورت مشابه در مورد دیگر توزیعات لینوکس قابل اجراست.

ساده‌ترین راه برای بررسی مشخصات سخت‌افزار و اطلاعات مربوطه، استفاده از دستوراتی مثل موارد زیر است:

cat /proc/cpuinfo

cat /proc/meminfo

cat /proc/net/wireless

این سه دستور به ترتیب اطلاعات یا Info مربوط به پردازنده، رم و شبکه‌ی وایرلس یا به زبان دیگر، وای-‌فای را نمایش می‌دهند.

اما در ادامه روش‌های گرافیکی‌تر را مرور می‌کنیم که به لحاظ خوانایی اطلاعات بهتر هستند.

مانیتورینگ سخت‌افزار با System Monitor‌ لینوکس اوبونتو

در سیستم عامل لینوکس اوبونتو به صورت پیش‌فرض اپلیکیشنی عالی به اسم System Monitor برای مانیتور کردن وضعیت سیستم موجود است. برای اجرا کردن اپلیکیشن سیستم مانیتور، در گوشه‌ی پایین و سمت چپ صفحه روی Show Applications کلیک کنید و سپس عبارت monitor را سرچ کنید.

اگر این اپلیکیشن به دلیلی در سیستم عاملی که نصب کرده‌اید موجود نیست، می‌توانید آن را با استفاده از فرمان Apt install نصب کنید. بنابراین اپلیکیشن Terminal را اجرا کنید و دستور زیر را تایپ کرده و کلید Enter را فشار دهید:

تصویر زیر نمایی از ابزار System Monitor اوبونتو است:

همان‌طور که در تصویر فوق مشاهده می‌کنید سه تب در این اپ موجود است:

Processes یا تب پردازش‌ها که مثل تب Processes تاسک منیجر ویندوز اطلاعاتی در مورد میزان استفاده از CPU و RAM و همین‌طور نوشتن و خواندن روی دیسک که همان هارددیسک یا SSD است و موارد مفید دیگر نمایش می‌دهد. می‌توانید روی فرآیندهای موجود راست‌کلیک کنید و آنها را به صورت اجباری ببندید و یا اولویت اجرایشان را کاهش دهید تا کمتر از پردازنده‌ی سیستم استفاده کنند.

در تب دوم که Resources نام دارد، نمودارهای ساده‌ی برای نمایش میزان استفاده از CPU و Memory و Network موجود است.

و در تب آخر که File Systems نام دارد، هم اطلاعاتی مفید دیگری نمایش داده می‌شود.

ممکن است حین بررسی مشکلات سیستم برای مانیتورینگ لحظه‌به‌لحظه بخواهید پنجره‌ی مانیتورینگ همیشه در معرض دید باشد. برای این مقصود می‌توانید روی نوار عنوان پنجره‌ی مانیتورینگ راست‌کلیک کنید و گزینه‌ی Always on Top را انتخاب کنید. در این صورت این پنجره برفراز پنجره‌های دیگر نمایش داده می‌شود و حتی در حالتی که اپلیکیشن به صورت تمام صفحه اجرا شده باشد هم می‌توانید وضعیت استفاده از سخت‌افزار را ببینید. توجه کنید که این قابلیت در مورد دو اپلیکیشن بعدی و هر اپ دیگری وجود دارد و یک ویژگی سیستم عامل لینوکس Ubuntu است.

Conky اپلیکیشنی بررسی وضعیت استفاده از سخت‌افزار

یکی دیگر از اپلیکیشن‌های محبوب برای مانیتورینگ وضعیت استفاده از منابع سخت‌افزاری در توزیعات مختلف لینوکس و از جمله اوبونتو، Conky نام دارد. برای نصب کردن این اپلیکیشن، دستور زیر را در ترمینال لینوکس اجرا کنید:

این اپلیکیشن به صورت پیش‌فرض در سمت چپ صفحه نمایان می‌شود که مناسب نیست و مانع استفاده‌ی راحت از نوار سمت چپ صفحه می‌شود. بنابراین برای تغییر دادن موقعیت پیش‌فرض آن، دستور زیر را اجرا کنید:

و در نهایت برای اجرای اپلیکیشن، فرمان زیر را تایپ کرده و Enter را فشار دهید:

همان‌طور که مشاهده می‌کنید در پنجره‌ای فشرده در گوشه‌ی بالا و راست صفحه، اطلاعات مفیدی در مورد میزان استفاده از RAM و همین‌طور CPU نمایش داده شده می‌شود:

برای این اپلیکیشن تم‌های زیبا و جالبی طراحی شده است و با وجود اینکه حالت پیش‌فرض آن بسیار ساده و شاید زشت به نظر برسد، اگر از تم‌هایی که کاربران طراحی کرده‌اند استفاده کنید، وضعیت متحول می‌شود.

استفاده از محیط ترمینال برای بررسی استفاده از سخت‌افزار

استفاده از اپلیکیشن‌های گرافیکی ساده است اما کندتر و سنگین‌تر هستند. اگر به ابزارهایی که از طریق واسط خط دستور یا همان ترمینال لینوکس اطلاعات را نمایش می‌دهند علاقه‌مند هستید، می‌توانید از ابزارها و دستورات مفیدی که در ادامه ذکر می‌کنیم استفاده کنید.

ابزار free

دستور زیر را در ترمینال اجرا کنید:

همان‌طور که در تصویر زیر مشاهده می‌کنید، میزان استفاده از رم سیستم زیر عبارت used و مقدار آزاد زیر عبارت free و مقدار بافر یا کش و مقدار کل حافظه‌ی رم در ستون‌های دیگر نمایش داده می‌شود:

دقت کنید که منظور از مقدار رم Free یا آزاد، بخشی از حافظه که اپلیکیشن می‌تواند از آن استفاده کند نیست. در لینوکس فایل‌هایی که از HDD یا SSD خوانده شده روی RAM و در بخشی که بافر یا کش یا مثل تصویر فوق buff/cache نامیده می‌شود، قرار می‌گیرد. بنابراین اگر نرم‌افزار به فایلی نیاز داشته باشد و فایل در کش موجود باشد، از رم خوانده می‌شود که به مراتب سریع‌تر از حافظه‌ی ذخیره‌سازی حتی از نوع SSD است. به این ترتیب زمانی که مرورگری را باز کرده و می‌بندید و از نو اجرا می‌کنید، مرتبه‌ی دوم سرعت اجرا به مراتب بالاتر از مرتبه‌ی اول است.

در لینوکس معمولاً بخش کش یا بافر، سهم بزرگی از رم را به خود اختصاص می‌دهد و البته نمی‌توان گفت که این بخش از رم، اشغال شده و آزاد نیست. به محض اینکه اپلیکیشن به حافظه‌ی رم بیشتری نیاز داشته باشد، برخی از فایل‌های کش از رم حذف می‌شود و فایل‌های جدید جایگزین می‌شود. بنابراین رم در دسترس یا Available مهم‌ترین موضوع در بررسی وضعیت استفاده از رم است.

ابزارهای top‌ و htop برای ترمینال لینوکس

دستور top به صورت پیش‌فرض در توزیعات مختلف لینوکس قابل استفاده است. پس از اجرای دستور، برای بستن ابزار مانیتورینگ می‌بایست q را فشار دهید.

دستور دیگر htop است که البته باید ابزار مربوطه را ابتدا نصب کنید. برای نصب کردن در لینوکس اوبونتو دستور زیر را اجرا کنید:

و سپس فرمان htop را اجرا کنید:

به این ترتیب اطلاعات مربوط به استفاده پردازنده و رم بر حسب درصد و توسط پردازش‌های مختلف، در محیط ترمینال نمایش داده می‌شود. همان‌طور که در تصویر زیر مشاهده می‌کنید، نمایش به صورت رنگارنگ یا بهتر بگوییم، نیمه گرافیکی است!

اولین خطوط قبل از بخش جدولی که در آن اعدادی مثل 1 و 2 ذکر شده، به استفاده از هسته‌های پردازنده اشاره می‌کند. در مورد استفاده‌ی کلی از حافظه‌ی رم نیز خطوط سبزرنگ روبروی Mem وضعیت را مشخص می‌کند و البته اعداد نیز در این سطر ذکر شده است. دو رنگ آبی و قهوه‌ای برای مشخص کردن بافر فایل و فولدرها و کش به کار می‌رود. 

بنابراین htop دستور ساده و سریعی برای مانیتور کردن وضعیت استفاده از سخت‌افزار است که در محیط ترمینال اجرا می‌شود و اطلاعات را نیز در ترمینال نمایش می‌دهد. حتی می‌توانید از موس برای کلیک کردن روی اطلاعات مختلف استفاده کنید!


یکی از مهارت‌های مدیران سیستم این است که فضای ذخیره‌سازی هارددیسک یا SSD را مدیریت کنند. به خصوص در سرورهای مجهز به SSD و یا کامپیوترهای معمولی که ظرفیت هارددیسک کم است، باید همواره حجم فولدرها و فایل‌های حجیم را بررسی کرد و در صورت امکان، پاکسازی انجام داد.

در این مقاله می‌خواهیم به روش چک کردن فضای خالی دیسک و حجم فایل و فولدرها در لینوکس و مدیریت آن بپردازیم.

برای چک کردن حجم فایل‌ها و فولدرها در توزیعات مختلف Linux، بهتر است دو دستور مهم زیر را بشناسید:

  • df که دستوری برای چاپ کردن حجم فضای ذخیره‌سازی به کار می‌رود.
  • du که برای مشخص کردن فضای اشغال شده توسط فایل یا فولدرها و لیست کردن حجم فایل و فولدرها کاربرد دارد.

در ادامه با بررسی مثال‌هایی، استفاده از فرمان‌های فوق را بررسی می‌کنیم.

استفاده از دستور df برای بررسی فضای دیسک در لینوکس

برای شروع کار اپلیکیشن ترمینال لینوکس را اجرا کنید و دستور df را تایپ کرده و Enter را فشار دهید. در تصویر زیر خروجی این فرمان که در لینوکس Ubuntu اجرا شده را مشاهده می‌کنید:

دستوراتی برای بررسی استفاده از فضای دیسک و پاکسازی آن در لینوکس

همان‌طور که مشاهده می‌کنید، لیستی از دیسک‌های مختلف متصل به سیستم که ممکن است هارددیسک یا SSD باشند به همراه مقدار فضای استفاده شده و مقدار فضای آزاد یا Available و همین‌طور مسیر ماونت شدن، چاپ می‌شود.

اگر لیست طولانی است و می‌خواهید لیست را کوتاه‌تر و کاربردی‌تر مشاهده کنید، می‌توانید صرفاً مسیر جستجو را به دیسک کاری یا یک پارتیشن خاص محدود کنید. به عنوان مثال می‌توانید دستور ذ یا df /dev/sda2 و مانند آن را در ترمینال اجرا کنید. در این صورت خروجی بسیار ساده می‌شود:

دستوراتی برای بررسی استفاده از فضای دیسک و پاکسازی آن در لینوکس

فرمان df آپشن مفیدی به اسم h نیز دارد. با افزودن این سوییچ، ظرفیت‌ها بر حسب مگابایت و گیگابایت و کیلوبایت ذکر می‌شود که خواندن آن به مراتب ساده‌تر است. لذا بهتر است فرمان df -h را برای چک کردن ظرفیت دیسک‌ها و میزان استفاده شده و خالی اجرا کنید:

دستوراتی برای بررسی استفاده از فضای دیسک و پاکسازی آن در لینوکس

اگر بخواهید لیست ساده‌تر شود، می‌توانید از فلگ –output استفاده کنید. پارامترهای زیر برای این فلگ قابل استفاده است:

  • source یا منبع ماونت شدن وسیله‌ی ذخیره‌سازی
  • size یا تعداد کل بلوک‌ها
  • used یا تعداد بلوک‌های حافظه که استفاده شده است
  • avail یا تعداد بلوک‌هایی که خالی است
  • pcent یا درصد فضای استفاده شده
  • target یا نقطه‌ی ماونت شدن دیوایس

به عنوان مثال با اجرا کردن فرمان زیر، صرفاً منبع، میزان استفاده و میزان فضای خالی دیسک‌ها لیست می‌شود:

خروجی دستور فوق را در تصویر زیر مشاهده می‌کنید:

دستوراتی برای بررسی استفاده از فضای دیسک و پاکسازی آن در لینوکس

لیست کردن فایل و فولدرها و ظرفیت هر مورد با du

اگر دستور df را اجرا کرده‌اید و به این نتیجه رسیده‌اید که فضای هارددیسک‌ها و SSDهای سیستم لینوکسی نسبتاً پر است و نیاز به پاکسازی دارد، می‌توانید سراغ دستور مفید بعدی که du است بروید. این دستور در شناسایی فایل‌ها و فولدرهای حجیم، مفید واقع می‌شود و پس از بررسی اطلاعات، می‌توانید مواردی که قابل حذف کردن است و در عین حال حجم زیادی را پر کرده، حذف کنید.

توجه کنید که دستور du در حالت ساده و بدون هیچ آپشنی، صرفاً لیستی از فایل‌ها و حجم فایل‌ها را چاپ می‌کند. اگر تعداد فایل‌های بسیار زیاد باشد، طبعاً اجرای این دستور و چاپ لیست، طولانی می‌شود. به علاوه لیست بسیار طولانی که چندان مفید نیست، چاپ می‌شود. بنابراین معمولاً پس از این فرمان، تعدادی آپشن نیز تایپ می‌شود.

به عنوان مثال برای یافتن تمام فایل‌ها و فولدرها شامل موارد مخفی، می‌توانید از سوییچ یا آپشن a استفاده کنید. برای مرتب‌سازی نیز می‌توانید از فرمان sort استفاده کنید. استفاده از فرمان head و مشخص کردن تعداد آیتم‌ها نیز لیست خروجی را کوتاه می‌کند. دستور زیر برای یافتن ۱۰ مورد از حجیم‌ترین فولدرها کاربرد دارد که در آن از دستور head و sort مشترکاً استفاده شده است:

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

دستور du دارای آپشن‌های متعددی است که هر یک تعدادی پارامتر دارند. برای اطلاعات کامل در مورد این فرمان، به صفحه‌ی راهنمای استفاده du مراجعه فرمایید.

دستور ncdu جایگزین du

اگر به دستوری نیاز دارید که تعاملی‌تر از du‌ باشد، می‌توانید از دستور ncdu استفاده کنید. این دستور هم اطلاعات مشابهی را نمایش می‌دهد اما شیوه‌ی نمایش، کاربردی‌تر و بهتر است. به علاوه می‌توانید با استفاده از فلش‌های جهت، بین فولدرهای مختلف جابجا شوید و با زدن Enter ، فولدری را انتخاب کنید.

برای استفاده از این فرمان، می‌بایست پکیج مربوطه را دانلود و نصب کنید. دستور نصب در توزیعات مختلف لینوکس متفاوت است. در لینوکس اوبونتو از دستور زیر استفاده کنید:

و برای استفاده از آن، نام فولدر موردنظر و مسیر آن را وارد کنید. لذا در دستور زیر به جای directory-to-scan، مسیر موردنظر را قرار بدهید:

به عنوان مثال برای اسکن کردن تمام فضای ذخیره‌سازی، فرمان زیر را اجرا کنید:

خروجی فرمان فوق را در تصویر زیر مشاهده می‌کنید:

پاکسازی فایل و فولدرهای اضافی در لینوکس

علاوه بر دستوراتی که معرفی کردیم، روش‌های ساده‌ای برای پاکسازی برخی فایل و فولدرها در لینوکس وجود دارد. در ادامه به برخی موارد مهم و کاربردی اشاره می‌کنیم.

پاکسازی بسته‌های قدیمی با Autoremove

در لینوکس Ubuntu برای پاکسازی کردن بسته‌های نرم‌افزاری قدیمی و تاریخ‌گذشته، می‌توانید از فرمان apt و آپشن autoremove استفاده کنید. فراموش نکنید که sudo را در ابتدای دستور اضافه کنید تا با دسترسی ادمین اجرا شود:

پس از وارد کردن پسورد، پکیج‌های نرم‌افزاری بلااستفاده و قدیمی حذف می‌شود. به علاوه کرنل‌های قدیمی که معمولاً کاربردی ندارد و صرفاً فضای دیسک را پر کرده، پاکسازی می‌شود.

پاکسازی کش اپلیکیشن‌ها

در لینوکس اوبونتو و برخی توزیعات دیگر Linux، ابزار نصب و آپدیت کردن اپلیکیشن‌ها، دارای حافظه‌ی کش است و نسخه‌های قدیمی را نگه می‌دارد. یکی از کاربردهای این نسخه‌ها، قابلیت دانگرید یا بازگشت به نسخه‌ی قبلی اپلیکیشن‌ها است.

آموزش دانگرید اپ‌ها یا نصب نسخه قدیمی‌تر نرم‌افزارها در لینوکس Ubuntu

اگر به دانگرید کردن احتیاج ندارید، می‌توانید کش را پاکسازی کنید. برای این کار دستور زیر را اجرا کنید:

و سپس با دستور زیر، پاکسازی خودکار را آغاز کنید:

استفاده از نرم‌افزارهای پاکسازی دیسک

به جز استفاده از دستورات در محیط ترمینال، روش‌های گرافیکی نیز برای اسکن کردن هارددیسک و SSD به منظور پاکسازی فایل‌ها و فولدرهای اضافی، وجود دارد. می‌توانید از نرم‌افزارهای کمکی برای این مهم استفاده کنید.

یکی از نرم‌افزارهای محبوب در این عرصه، Bleachbit نام دارد. این نرم‌افزار نسخه‌ی تحت ویندوز نیز دارد و کار آن پاکسازی موارد اضافی است. برای دانلود اپلیکیشن به وب‌سایت رسمی آن رجوع کنید:

دانلود Bleachbit برای ویندوز یا لینوکس