تدوير السجلات وأرشفتها
طبّقوا `logrotate` لإدارة أحجام ملفات السجلات، ومنع امتلاء القرص، وضمان تطبيق سياسات فعّالة لأرشفة السجلات.
تدوير السجلات وأرشفتها درس مجاني في Linux Server Deployment & SSH Mastery على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Linux Server Deployment & SSH Mastery، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Linux Server Deployment & SSH Mastery 4 دروس في المجموع.
لماذا يهم تدوير السجلات؟
تُعد سجلات الخادم ضرورية لتصحيح الأخطاء والمراقبة، لكنها قد تكبر جدًا بمرور الوقت. وإذا تُركت دون رقابة، فقد تملأ مساحة القرص سريعًا، مما يؤدي إلى عدم استقرار الخادم أو حتى تعطله.
وهنا يأتي دور تدوير السجلات. إنها عملية مهمة لإدارة أحجام ملفات السجل بكفاءة.
التعريف بأداة `logrotate`
تستخدم أنظمة Linux أداة تُسمى logrotate لأتمتة إدارة ملفات السجل. وقد صُممت من أجل:
- تدوير السجلات (إعادة تسمية القديمة منها)
- ضغط السجلات القديمة لتوفير المساحة
- إزالة ملفات السجل القديمة جدًا
- تشغيل نصوص مخصصة بعد التدوير
تأتي معظم توزيعات Linux مزودة بـ logrotate مثبتة ومهيأة للتشغيل يوميًا عبر مهمة cron.
كيف تعثر `logrotate` على التعليمات
يقرأ logrotate إعداداته من ملفات محددة. وهناك موقعان رئيسيان:
/etc/logrotate.conf: ملف الإعداد الرئيسي، ويحتوي غالبًا على الإعدادات العامة والقيم الافتراضية./etc/logrotate.d/: دليل تضع فيه التطبيقات والخدمات الفردية قواعد تدوير السجلات الخاصة بها. ويُعامل كل ملف في هذا الدليل على أنه إعداد منفصل.
يسهّل هذا الأسلوب المعياري إدارة القواعد الخاصة بالخدمات المختلفة.
تحديد دورية تدوير السجلات
من أول الأمور التي ينبغي تحديدها عدد مرات تدوير السجلات. يوفر logrotate عدة توجيهات لذلك:
daily: تدوير السجلات يوميًا.weekly: تدوير السجلات مرة أسبوعيًا.monthly: تدوير السجلات مرة شهريًا.yearly: تدوير السجلات مرة سنويًا.
اختاروا دورية توازن بين الاحتفاظ بتفاصيل السجلات واستهلاك مساحة القرص.
الاحتفاظ بعدد من السجلات القديمة
يحدد التوجيه rotate لـ logrotate عدد ملفات السجل القديمة التي ينبغي الاحتفاظ بها قبل حذف أقدمها. فعلى سبيل المثال، يعني rotate 4 الاحتفاظ بملف السجل الحالي بالإضافة إلى أربع نسخ مُدوّرة (مؤرشفة).
عند بلوغ الحد، يُحذف أقدم سجل مُدوّر عند إجراء تدوير جديد.
ضغط ملفات السجل القديمة
لتوفير مساحة أكبر على القرص، يمكن لـ logrotate ضغط ملفات السجل القديمة. يحقق التوجيه compress ذلك تمامًا، ويستخدم عادةً gzip.
عند تفعيل هذا الخيار، ستظهر ملفات السجل التي تم تدويرها بامتداد .gz، مثل myapp.log.1.gz. ويوصى بذلك بشدة لمعظم سجلات الخوادم.
التدوير حسب الحجم، وليس الوقت فقط
قد تنمو السجلات أحيانًا بسرعة كبيرة، ولا يكفي انتظار التدوير اليومي أو الأسبوعي. يتيح التوجيه size تدوير السجلات عند تجاوزها حجمًا معينًا، بغض النظر عن الفترة الزمنية المحددة.
size 100k: تدوير الملف إذا تجاوز حجمه 100 كيلوبايت.size 10M: تدوير الملف إذا تجاوز حجمه 10 ميغابايت.size 1G: تدوير الملف إذا تجاوز حجمه 1 غيغابايت.
إذا تم تحديد فترة زمنية، مثل daily، إلى جانب size، فسيحدث التدوير عند تحقق أي من الشرطين.
مثال على إعداد `logrotate`
إليك مثالًا بسيطًا على ملف إعداد قد تجده في /etc/logrotate.d/ لملف سجل خاص بتطبيق افتراضي:
سيعمل هذا الإعداد على تدوير السجل يوميًا، والاحتفاظ بـ 7 نسخ قديمة، وضغطها.
/var/log/my_app/access.log {
daily
rotate 7
compress
notifempty
missingok
}
تشغيل `logrotate` يدويًا
على الرغم من أن logrotate يعمل عادةً تلقائيًا عبر cron، يمكنك اختبار التدوير أو فرضه يدويًا. الأمر الرئيسي هو logrotate /etc/logrotate.conf.
لفرض التدوير، وهو أمر مفيد لاختبار إعداداتك، استخدم الخيار -f:
logrotate -f /etc/logrotate.d/my_app: يفرض التدوير لملف إعداد محدد.logrotate -f /etc/logrotate.conf: يفرض التدوير لجميع السجلات المُعدّة.
استخدم الخيار -d (التصحيح) لمعرفة ما سيقوم به الأمر دون إجراء أي تدوير فعلي.
تحقق سريع: الاحتفاظ بالسجلات
ضع في اعتبارك إعداد logrotate التالي للمسار /var/log/webserver/error.log:
/var/log/webserver/error.log {
weekly
rotate 4
compress
notifempty
}إذا ظل هذا الإعداد قيد التشغيل لعدة أسابيع، فكم عدد ملفات السجل التاريخية *المضغوطة* التي تتوقع العثور عليها في أي وقت؟
مراجعة: إتقان إدارة السجلات
استكشفنا في هذا الدرس كيفية إدارة سجلات الخادم بفعالية باستخدام logrotate. وتعلمنا ما يلي:
- يمنع تدوير السجلات امتلاء القرص.
- يستخدم
logrotateملفات الإعداد الموجودة في/etc/logrotate.confو/etc/logrotate.d/. - تشمل التوجيهات الأساسية
daily/weekly/monthlyلتحديد الفترة، وrotateللاحتفاظ، وcompressلتوفير المساحة، وsizeللتدوير المشروط.
تُعد إدارة السجلات بطريقة صحيحة ركيزة أساسية لاستقرار عمليات الخادم!
الأسئلة الشائعة
هل درس «تدوير السجلات وأرشفتها» مجاني؟
نعم — نص درس «تدوير السجلات وأرشفتها» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Linux Server Deployment & SSH Mastery، انتقل إلى CoddyKit PRO. تتضمن دورة Linux Server Deployment & SSH Mastery 4 دروس في المجموع.
ماذا ستتعلم في «تدوير السجلات وأرشفتها»؟
طبّقوا `logrotate` لإدارة أحجام ملفات السجلات، ومنع امتلاء القرص، وضمان تطبيق سياسات فعّالة لأرشفة السجلات. تتمرن على Linux Server Deployment & SSH Mastery مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Linux Server Deployment & SSH Mastery؟
لا تُشترط خبرة سابقة. Linux Server Deployment & SSH Mastery على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «تدوير السجلات وأرشفتها»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Linux Server Deployment & SSH Mastery هذا؟
نعم. كل درس في Linux Server Deployment & SSH Mastery يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- أدوات مراقبة النظام
- فهم سجلات النظام
- تدوير السجلات وأرشفتها
- المراقبة المركزية والتنبيهات