EngineeringDone

42-goinfre — استرداد مساحة القرص على أجهزة مختبر 42

سكربت شيل يعالج امتلاء قرص أجهزة iMac في مختبرات 42 بإعادة توجيه مجلدات التنزيلات والذاكرة المؤقتة إلى

٢٢ يوليو ٢٠٢٦
2 التقنيات
English
42-goinfre — استرداد مساحة القرص على أجهزة مختبر 42

عن هذا المشروع

سكربت شيل لأجهزة iMac في مختبرات 42 ينقل مجلدات التنزيلات والذاكرة المؤقتة إلى goinfre عبر روابط، لينهي رسالة امتلاء القرص.

التقنيات

ShellAutomation

i99dev_project_42-goinfre_cover_1200x630_v1.0.0.svg

أداة ولدت من مشكلة يومية في مختبرات 42: رسالة «You don't have space» عند كل جلسة عمل.

نظرة عامة

أجهزة iMac في مختبرات 42 تمنح كل طالب مساحة محدودة جداً في مجلده الشخصي، فيما يوجد مجلد ~/goinfre واسع لكنه غير دائم. 42-goinfre سكربت واحد يستثمر هذا الفرق: ينقل كل ما هو ثقيل وقابل للفقدان إلى goinfre، ويترك روابط في مواضعها الأصلية حتى تستمر التطبيقات في العمل دون أن تلاحظ شيئاً.

chmod +x be_free.sh
./be_free.sh

أي كلمات مرور محفوظة محلياً تُحذف مع كل تشغيل للسكربت. المحفوظة في السحابة أو داخل حساب المتصفّح تبقى سليمة.

المشكلة

المساحة تمتلئ من ثلاثة مصادر متوقّعة، ولا واحد منها يحمل بيانات يحتاج الطالب إلى الاحتفاظ بها:

  1. مجلد التنزيلات يتراكم دون أن يُراجع.
  2. مجلدات الذاكرة المؤقتة للمتصفّحات والمحرّرات تتضخّم بصمت.
  3. التطبيقات الكبيرة مثل Chrome وVS Code تلتهم جزءاً معتبراً من حصة الطالب قبل أن يكتب أي شيفرة.

الحلّ اليدوي — حذف ما يمكن حذفه — يعمل لساعة، ثم تعود المشكلة في الجلسة التالية.

التخطيط

الفكرة المركزية: تصنيف الملفات إلى «يجب أن تبقى» و«يمكن إعادة توليدها»، ثم إرسال الصنف الثاني إلى goinfre:

الهدف ما يفعله السكربت
مجلد Downloads يُنقل إلى ~/goinfre مع رابط في مكانه
مجلدات Caches تُنقل إلى ~/goinfre مع رابط في مكانها
Chrome وVS Code يُنزّلان داخل ~/goinfre مع اختصار على سطح المكتب

القرارات المعمارية

روابط بدل الحذف. أبسط سكربت ممكن يمسح المجلدات الثقيلة، لكنه يحلّ المشكلة مرة واحدة فقط ويطلب تكراره إلى الأبد. إعادة التوجيه عبر روابط تجعل النمو اللاحق يحدث في المكان الصحيح تلقائياً.

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

التصريح بالثمن مقدماً. المقابل الواضح لهذا النهج أن محتوى goinfre غير دائم، ومنه كلمات المرور المحفوظة محلياً. وضع هذا التحذير في أوّل سطر من التوثيق قرار مقصود، لا تفصيل ثانوي.

التنفيذ

السكربت يُستنسخ ويُمنح صلاحية التنفيذ ثم يُشغّل مباشرة، أو عبر bash be_free.sh دون تعديل الصلاحيات. لا معاملات ولا خيارات — مسار واحد ينتهي إلى جهاز قابل للاستخدام.

بحسب توثيق المستودع، ينخفض استهلاك المساحة بعد التشغيل إلى نحو 40% من الحصة المتاحة البالغة 5GB.

النتيجة والدروس

مشكلة كانت تتكرر مع كل زيارة للمختبر صارت خطوة تُنفّذ مرة واحدة عند بداية الجلسة.

  1. الحلّ الدائم يعالج المسار لا المحتوى. تنظيف الملفات عمل متكرر؛ تغيير وجهتها عمل يُنجز مرة.
  2. الأداة التي تحذف بيانات تحتاج إلى تحذير لا إلى تبرير. المستخدم يقبل المقايضة إذا عرفها قبل التشغيل لا بعده.
  3. معرفة البيئة تسبق الشيفرة. قيمة السكربت ليست في أسطره بل في ملاحظة أن goinfre موجود وغير مستثمَر.

الروابط

روابط المشروع

تاريخ البداية٢٢ يوليو ٢٠٢٦
الحالةDone

مشاركة المشروع