الدليل العملي الشامل لأمر df في لينكس

نظرة عامة

يُعد ظهور رسالة الخطأ الشهيرة “No space left on device” كابوساً مألوفاً لمديري الأنظمة، وتعتبر أداة df خط الدفاع الأول والوسيلة الأكثر فاعلية لتشخيص هذا المأزق فوراً. لا تقتصر الاستفادة من هذه الأداة على قراءة المساحة بالأحجام الشائعة فحسب، بل تمتد لتشمل عزل أنظمة الملفات الافتراضية، وحل لغز تعذر إنشاء الملفات رغم توفر السعة التخزينية بسبب نفاذ فهارس الـ Inodes. يستعرض هذا المقال أنماط الاستخدام الاحترافية للأمر، مع تسليط الضوء على الفروقات الشائعة بين قراءات df و du لتفادي أخطاء التحليل الميداني.

1. قراءة السعة التخزينية بصيغة مفهومة بشرياً (df -h)

يعمل الأمر الأساسي df على جرد مساحات التخزين الشاغرة والمستخدمة لكافة أنظمة الملفات النشطة على خادمك.
عند تنفيذ الأمر دون أي وسائط إضافية، تُعرض البيانات الافتراضية بوحدات كتل تبلغ سعتها كيلوبايت واحد (1K-blocks)، مما يجعل التقييم السريع للحجم الحقيقي أمراً معقداً ويتطلب حسابات ذهنية مرهقة.
⚙️ [أبرز الخيارات العملية]

-h : إعادة صياغة الأرقام بوحدات قياس مألوفة وسهلة الاستيعاب (كيلوبايت، ميجابايت، جيجابايت).
-T : إظهار هوية ونوع نظام الملفات لكل وحدة تخزين (مثل ext4، xfs، overlay).
-i : تحويل الفحص من قياس استهلاك الكتل التخزينية إلى تتبع جداول فهارس الملفات (Inodes).
-t : تصفية النتائج وحصر العرض على نمط محدد من أنظمة الملفات.
-x : حجب واستبعاد أنماط معينة من أنظمة الملفات لتنقية مخرجات التقرير.

استعراض مخرجات أمر df الأساسي

عند إسناد المعامل -h (وهو اختصار لـ --human-readable)، تتغير طريقة تمثيل البيانات التخزينية لتتحول الأرقام الخام تلقائياً إلى وحدات الميجابايت (M) والجيجابايت (G). تُمكّنك هذه الصيغة البصرية المباشرة من رصد معدلات الامتلاء وتحديد السعات الحرة دون الحاجة لأي عمليات حسابية مساعدة.

نتائج تنفيذ الأمر df -h بالقراءة الميسرة

2. تصفية النتائج وعزل أنظمة الملفات الافتراضية (df -h -x / -t)

يتيح استدعاء المعامل -x (المطابق لـ --exclude-type) تكراره عدة مرات في الأمر df -h -x tmpfs -x devtmpfs -x squashfs لاستبعاد وسائط التخزين المؤقتة والافتراضية من جدول المخرجات.
في بيئات توزيعة أوبونتو تحديداً، تزدحم القائمة بمداخل حزم snap المعتمدة على squashfs إلى جانب أقراص الذاكرة العشوائية tmpfs و devtmpfs، مما يشوش على رؤية مهندس النظام ويصعب متابعة الأقراص المادية. ومن خلال هذا الاستبعاد، يقتصر التقرير على وسائط التخزين الفعلية ونقاط التثبيت الحيوية بكل وضوح.

استبعاد الأقراص المؤقتة باستخدام الخيار -x

وفي المقابل، يسمح الخيار -t (المطابق لـ --type) في التركيبة df -h -t ext4 بالتركيز الانتقائي على طراز تخزيني بعينه.
هذا الأسلوب يعزل الأقسام المهيأة بنظام ext4 الشهير في بيئة لينكس، موفراً تقريراً مقتضباً يبرز حالة وحدات التخزين الرئيسية ومعدلات استخدامها دون تشتيت الانتباه بمكونات النظام الهامشية.

حصر العرض على أنظمة ملفات ext4 عبر الخيار -t

3. معضلة امتلاء الفهارس: فحص نفاذ الـ Inodes رغم وجود مساحة حرة (df -i)

لإجراء محاكاة عملية لآلية عمل الخيار df -i، سنقوم بإنشاء مجلد تجريبي وملئه بعشرة ملفات نصية فارغة لاستهلاك بعض الفهارس.

تأسيس مجلد الاختبار وإنشاء ملفات فارغة

يقوم الأمر df -i /tmp/df-test بتوجيه عملية التدقيق نحو استهلاك جداول الـ Inodes لنظام الملفات الحاضن للمسار المحدد.
يغفل الكثيرون عن حقيقة جوهرية: حتى لو كانت سعة التخزين بالجيجابايت فارغة، فإن وصول نسبة استهلاك الفهارس إلى الحد الأقصى (IUse% 100%) يمنع النظام تماماً من إنشاء أي ملفات إضافية.
تتيح لك الأعمدة الظاهرة—Inodes (إجمالي السعة الرقمية للفهارس)، وIUsed (المستهلك منها)، وIFree (المتبقي المتاح)—معرفة ما إذا كانت المشكلة ناتجة عن تراكم أعداد هائلة من الملفات الصغيرة بدلاً من الحجم الفعلي.

مراجعة استهلاك جداول Inode عبر الأمر df -i

وبعد انتهاء التحقق التشخيصي، نحذف مسار الاختبار المؤقت وكافة محتوياته لتنظيف بيئة النظام عبر الأمر rm -rf /tmp/df-test.

حذف وتطهير ملفات ومجلد التجربة

4. فخاخ التشغيل الميداني: الملفات المحذوفة العالقة واختلاف نتائج df عن du

لتتبع العمليات التي تحتجز مساحة الملفات دون تحريرها، نتأكد أولاً من وجود أداة lsof على الخادم أو نقوم بتثبيتها عبر مدير الحزم.

فحص توفر أداة lsof وتثبيتها عند الحاجة

يكشف الأمر lsof +L1 عن قائمة الملفات التي تم حذف مساراتها منطقياً من شجرة الملفات ولكن روابطها النشطة انحدرت لأقل من رابط واحد مع بقائها قيد الفتح والاستخدام بواسطة عمليات حية.
تحدث هذه الظاهرة بكثرة عندما يُحذف ملف سجلات ضخم بواسطة الأمر rm بينما لا تزال خدمة أو عملية في الخلفية تحتفظ بمقبض الملف (File Handle) مفتوحاً؛ حينها يرفض نواة النظام تحرير الكتل التخزينية، فتبدو المساحة مفقودة في تقارير df رغم اختفاء الملف من نتائج du.
بمجرد تحديد معرّف العملية (PID) المعنية وإعادة تشغيلها أو إيقافها، يتم إغلاق مقبض الملف تلقائياً، وتستعيد وحدات التخزين مساحتها المفقودة بصورة فورية.

رصد الملفات المحذوفة المحتجزة بواسطة العمليات عبر lsof

استعرضنا معاً الركائز الخمس الأكثر أهمية لتوظيف الأمر df في بيئة لينكس، إلى جانب الإجراءات الحاسمة لتفادي الالتباس بين المساحة المادية والمساحة المحجوزة برمجياً.
بتطبيقك لهذه التقنيات المتقدمة، ستتمكن من استباق أعطال امتلاء وسائط التخزين وضمان كفاءة واستقرار خوادمك الإنتاجية على الدوام.