دليل bzless في أوبونتو: تصفح ملفات bz2 دون فك ضغطها

نظرة عامة

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

1. التحقق من حزمة bzip2 وإنشاء ملف تجريبي بصيغة bz2

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

فحص أداة bzless وتثبيت حزمة bzip2

سنقوم الآن بإعداد ملف سجل تجريبي باسم app_server.log يحتوي على أسطر متعددة لمستويات مختلفة من السجلات التشغيلية باستخدام الأمر echo.

إنشاء ملف سجل تجريبي باستخدام echo

لضغط الملف مع الاحتفاظ بالنسخة الأصلية غير المضغوطة لتفادي فقدانها أثناء التجربة، نمرر المعامل -k للأمر bzip2 لإنشاء الأرشيف app_server.log.bz2.

ضغط الملف مع الاحتفاظ بالأصل عبر bzip2 -k

للتأكد من توليد الملف المضغوط بنجاح ومراجعة حجمه وبياناته الوصفية، نستعرض معلوماته بواسطة الأمر ls -lh.

التحقق من حجم وبيانات الملف المضغوط عبر ls

2. استعراض محتويات السجل مباشرة عبر bzless

من خلال تشغيل bzless app_server.log.bz2، يُعرض النص الداخلي فوراً على الشاشة دون الحاجة إلى فك الأرشيف مسبقاً.
تعتمد هذه الأداة على عارض النصوص الشهير less، مما يمنحك حرية التنقل بين الصفحات والأسطر عبر الأسهم أو زر المسافة (Space)، ويمكنك الخروج من شاشة العرض في أي وقت بالضغط على مفتاح q.

استعراض محتوى الأرشيف باستخدام bzless

3. ترقيم الأسطر والبحث عن الأنماط النصية

يتيح تنفيذ الأمر bzless -N app_server.log.bz2 قراءة السجلات المضغوطة مع إظهار أرقام الأسطر بجوار كل مدخلة.
تعد إضافة الخيار -N مفيدة للغاية عند تدقيق السجلات البرمجية الكبيرة، حيث تساعد في تحديد السطر الدقيق الذي وقعت فيه مشكلة معينة دون عناء.
يمكنك أيضاً البحث السريع داخل واجهة العرض بكتابة علامة الشرطة المائلة متبوعة بالكلمة المستهدفة، مثل /ERROR، والتنقل بين التطابقات اللاحقة والسابقة عبر الضغط على n أو N.

عرض أرقام الأسطر والبحث داخل السجلات عبر bzless -N

4. المقارنة مع bzgrep وbzcat في سيناريوهات العمل الفعلية

عند الرغبة في رصد أحداث محددة دون فتح الواجهة التفاعلية بالكامل، يمكن تنفيذ bzgrep "ERROR" app_server.log.bz2 لتصفية الأسطر التي تتضمن كلمة ERROR فقط وعرضها مباشرة.
تغنيك هذه الخطوة عن مراجعة كامل الأرشيف وتمنحك فحصاً سريعاً لوقوع أي أخطاء حرجة.

تصفية السجلات المضغوطة عبر bzgrep

عند تشغيل الأمر bzcat app_server.log.bz2 | head -n 2، يتم توجيه النص المفكك مباشرة إلى التدفق القياسي (Standard Output) وتمريره عبر مجرى الأنابيب (|) لاستخراج السطرين الأولين فقط.
على خلاف الطبيعة التفاعلية لأداة bzless، يبرز bzcat كخيار مثالي لدمجه داخل البرمجيات النصية (Shell Scripts) وربطه مع أدوات معالجة النصوص الأخرى مثل awk وgrep وhead.

تمرير مخرجات bzcat إلى أداة head عبر خط الأنابيب

استعرضنا في هذا الدليل العملي كيفية الاستفادة من أمر bzless على أوبونتو لمعاينة ملفات bz2 المضغوطة بكل سهولة وبأقل استهلاك للموارد.
استعن بهذه التقنية لاحقاً لتفادي الخطوات اليدوية لفك الضغط وتوفير مساحة التخزين أثناء فحص السجلات الضخمة والملفات النصية المؤرشفة.