انتقل إلى المحتوى الرئيسي

الاختبار النهائي الجزء 2

تاريخ النشر : 2025-07-09 13h00
تاريخ التسليم : 2025-07-09 15h00
طريقة التسليم : Omnivox
الطريقة : اختبار فردي
المواد المسموح بها : ملاحظات الدروس، أعمالك العملية والتمارين، الوثائق عبر الإنترنت، ولكن لا مساعدة خارجية (لا تواصل مع أشخاص آخرين)
استخدام الذكاء الاصطناعي : وفقًا لسياسة الكلية. يمكنك استخدام الذكاء الاصطناعي للبحث، ولكن يجب أن يكون الكود مكتوبًا بالكامل بنفسك.

سكربت لإدارة سجلات النظام بشكل آلي​

السياق​

أنت مسؤول نظام في شركة. يطلب منك مديرك إنشاء سكربت PowerShell لأتمتة إدارة ملفات السجلات. يجب أن يتيح هذا السكربت تنظيف وتنظيم وتحليل السجلات بانتظام.

أهداف العمل (100 نقطة)​

يجب أن يقوم سكربت PowerShell الخاص بك تلقائيًا بالإجراءات التالية:

1. إنشاء بيئة العمل (25 نقطة)​

يجب أن يستخدم السكربت متغير البيئة ENTERPRISE_DATA (المعرف مسبقًا بمسار صالح، مثل C:\EnterpriseLogs) لإنشاء هيكل المجلدات التالي تلقائيًا في $env:ENTERPRISE_DATA\AdminLogs :

$env:ENTERPRISE_DATA\AdminLogs
│
├── Logs_Actuels
│ ├── Systeme
│ ├── Applications
│ └── Securite
├── Archives
│ └── Anciens
└── Rapports
warning

قد تكون المجلدات موجودة بالفعل. يجب أن يتحقق السكربت من وجودها وألا يسبب أخطاء إذا كانت المجلدات موجودة بالفعل.

ثم يجب أن يقوم السكربت أيضًا بإنشاء 5 ملفات سجلات وهمية في مجلد Logs_Actuels\Systeme :

  • system_2025-07-01.log (المحتوى : "INFO: بدء النظام بنجاح")
  • system_2025-07-05.log (المحتوى : "ERROR: خطأ في القرص الصلب")
  • system_2025-07-08.log (المحتوى : "WARNING: ذاكرة منخفضة")
  • system_2025-07-09.log (المحتوى : "INFO: النظام محدث")
  • old_system_2024-12-15.log (المحتوى : "INFO: سجل قديم")

2. تحليل والبحث في السجلات (25 نقطة)​

يجب أن يقوم السكربت بـ:

  • البحث عن جميع الملفات .log في الهيكل $env:ENTERPRISE_DATA\AdminLogs\Logs_Actuels
  • إنشاء قائمة بالملفات التي تحتوي على الكلمة "ERROR" وحفظها في $env:ENTERPRISE_DATA\AdminLogs\Rapports\erreurs_trouvees.txt

3. الأرشفة التلقائية (25 نقطة)​

يجب أن يقوم السكربت بـ:

  • تحديد جميع ملفات السجلات التي مضى عليها أكثر من 7 أيام (استخدم التاريخ في اسم الملف)
  • نقل هذه الملفات القديمة إلى مجلد Archives\Anciens وإعادة تسميتها بإضافة البادئة ARCHIVE_
    • مثال : old_system_2024-12-15.log → ARCHIVE_old_system_2024-12-15.log
warning

انتبه، قد تكون هناك ملفات موجودة بالفعل في مجلد Archives\Anciens. يجب ألا يضيف السكربت ARCHIVE_ إلى الملفات المؤرشفة بالفعل. (لذلك لا ينبغي أن يكون هناك ملف باسم ARCHIVE_ARCHIVE_old_system_2024-12-15.log)

يمكن للسكربت الكتابة فوق ملف موجود إذا كان الاسم متطابقًا.

4. التقرير النهائي والتحقق (25 نقطة)​

يجب أن يقوم السكربت بإنشاء تقرير نهائي (rapport_gestion_logs.txt) في مجلد $env:ENTERPRISE_DATA\AdminLogs\Rapports يحتوي على:

  • تاريخ ووقت تنفيذ السكربت
  • عدد الملفات المؤرشفة
  • عدد الملفات التي تحتوي على أخطاء
  • رسالة تأكيد : "تم تنفيذ السكربت بنجاح"

المتطلبات التقنية​

  1. هيكل السكربت : يجب أن يكون السكربت منظمًا جيدًا مع تعليقات تشرح كل قسم مهم.

  2. الخاصية التكرارية : يجب أن يكون السكربت قادرًا على التنفيذ عدة مرات دون التسبب في أخطاء.

أوامر PowerShell المفيدة​

  • New-Item : إنشاء ملفات ومجلدات
  • Set-Content / Add-Content : الكتابة في الملفات
  • Get-ChildItem : سرد الملفات والمجلدات
  • Select-String : البحث عن نص في الملفات
  • Copy-Item : نسخ الملفات
  • Move-Item : نقل الملفات
  • Rename-Item : إعادة تسمية الملفات
  • Test-Path : التحقق من وجود ملف/مجلد
  • Get-Date : الحصول على التاريخ الحالي

التسليم​

يجب عليك تسليم سكربت PowerShell الخاص بك على Omnivox باسم gestion_logs.ps1.

حظًا موفقًا!