امتلاء قرص الخادم: حل خطأ ⁦No space left on device⁩

هذا الخطأ يعني نفاد المساحة أو نفاد عدد الملفات المسموح (⁦inodes⁩). افحص الاثنين، واعثر على أكبر المجلدات، وغالبًا ستجد السبب في السجلات أو النسخ الاحتياطية أو ذاكرة الحزم.

آخر تحديث:

أولًا: افحص المساحة وعدد الملفات

إذا كان ⁦Use%⁩ قريبًا من ⁦100⁩ في ⁦df -h⁩ فالمساحة نفدت، وإذا كان ⁦IUse%⁩ قريبًا من ⁦100⁩ في ⁦df -i⁩ فعدد الملفات نفد رغم وجود مساحة، وهذا يحدث غالبًا مع ملايين الملفات الصغيرة مثل الجلسات.

⁦console⁩
$ ⁦df -h⁩
$ ⁦df -i⁩

ثانيًا: اعثر على ما يشغل المساحة

هذا الأمر يعرض أكبر المجلدات دون المرور على أقراص أخرى. انزل في المجلد الأكبر وكرّر الأمر حتى تصل إلى السبب.

⁦console⁩
$ ⁦sudo du -xh --max-depth⁩=⁦1⁩ / | ⁦sort -h⁩ | ⁦tail -n 15⁩

ثالثًا: نظّف الأماكن الآمنة

هذه الأوامر تقلّص سجلات النظام وتزيل ذاكرة الحزم القديمة على ⁦Ubuntu⁩ و ⁦Debian⁩، وهي آمنة. راجع بعدها مجلد نسخك الاحتياطية وسجلات تطبيقاتك.

⁦console⁩
$ ⁦sudo journalctl --vacuum-size⁩=⁦200M⁩
$ ⁦sudo apt-get clean⁩
$ ⁦sudo apt-get autoremove --purge⁩
⁦console⁩
$ ⁦sudo truncate -s 0 /var/log/nginx/access.log⁩

حذفت ملفات والمساحة لم تعد؟

ملف محذوف ما زال مفتوحًا لدى برنامج يبقى شاغلًا للمساحة. هذا الأمر يعرض هذه الملفات، وإعادة تشغيل البرنامج المذكور تحرر المساحة.

⁦console⁩
$ ⁦sudo lsof +L1⁩

الخادم لا يقلع بسبب امتلاء القرص

أقلع بنظام الإنقاذ، وثبّت قسم النظام على ⁦/mnt⁩، واحذف ما لا تحتاجه منه، ثم أوقف نظام الإنقاذ وأعد التشغيل.

هل كانت الصفحة مفيدة؟