ثنائي خيارات logrotate - copytruncate -


الصفحة الرجل من لوغروتات يقول: إم الخلط من قبل هذا. إذا كان لا يمكن أن يقال برنامج لإغلاق ملف السجل الخاص به، وسوف تستمر في الكتابة إلى الأبد. ليس لبعض الوقت. إذا تم تأجيل الضغط إلى دورة التناوب التالية، يستمر البرنامج في الكتابة إلى هذا الملف حتى بعد دورة التناوب التالية. كيفية تأجيل حل المشكلة أفهم أنه يجب استخدام كوبيترونكات عندما لا يمكن أن يقال برنامج لإغلاق ملف السجل. إم على علم بأن بعض البيانات المكتوبة إلى ملف السجل تفقد عندما تكون النسخة قيد التقدم. كنت أبحث في ملف لوغروتات ل سوشدب، وكان كل من كوبيترونكات وخيارات ديلايومبريس. يبدو أنه لا توجد نقطة باستخدام ديلايتكومبريس عند كوبيترونكات بالفعل هناك. ما أنا في عداد المفقودين طلب يوليو 21 11 في 2: 14Im العمل على أوبونتو 14 مع رسيسلوغ الافتراضي و لوغروت فائدة. في الافتراضي rsyslog logrotate etclogrotate. drsyslog تكوين أرى ما يلي: من ما أفهم، فمن المستحسن استخدام كوبيترونكات في جميع سيناريوهات لوغروتات، كما أنه لا يتحرك السجل الحالي، ولكن بدلا من اقتطاع السجل حتى أي عملية مع ملف مفتوح سوف معالج تكون قادرة على الحفاظ على الكتابة إليها. فكيف يأتي التكوين الافتراضي باستخدام ميزة إعادة تحميل رسيسلوغ طلب بدلا من ذلك 5 مايو 15 في 7:40 للإجابة على سؤالك، قبضة تحتاج إلى فهم مختلف المفاضلة من إعادة تحميل و كوبيترونكات: إعادة تحميل. يتم إعادة تسمية ملف السجل القديم ويتم إعلام عملية الكتابة في هذا السجل (عبر إشارة أونيكس) لإعادة إنشاء ملف السجل الخاص به. هذه هي أسرع طريقة النفقات العامة: عمليات ريناميموف سريعة جدا ولها وقت التنفيذ المستمر. وعلاوة على ذلك، فإنه هو عملية ذرية تقريبا: وهذا يعني أن (تقريبا) سيتم فقدان أي دخول سجل خلال موفيرلواد. من ناحية أخرى، تحتاج إلى عملية قادرة على إعادة فتح وإعادة فتح ملف السجل الخاص به. رسيسلوغ هو مثل هذه العملية، وبالتالي فإن تكوين لوغروتات الافتراضي استخدام طريقة إعادة تحميل. كوبيترونكات. يتم نسخ ملف السجل القديم إلى ملف أرشيف ثم يتم اقتطاعه لحذف أسطر السجل القديمة. في حين أن عملية اقتطاع سريع جدا، يمكن أن تكون نسخة طويلة جدا (اعتمادا على كيف كبيرة هو السجل الخاص بك). وعلاوة على ذلك، يمكن أن تفقد بعض إدخال سجل خلال الفترة بين عملية النسخ (تذكر، يمكن أن يكون بطيئا) واقتطاع. لهذه الأسباب، لا يتم استخدام كوبيترونكات افتراضيا للخدمات التي يمكن إعادة تحميل وإعادة إنشاء ملفات السجل الخاصة بهم. من ناحية أخرى، إذا كان الملقم غير قادر على إعادة تحميل ملفات السجل، كوبيترونكات هو الأكثر أمانا الرهان. وبعبارة أخرى، فإنه لا يتطلب أي دعم على مستوى الخدمة. أجاب 5 مايو 15 في 7:50 I39m الحد من ملفات السجل الخاص بي إلى 500M لكل منهما، لذلك نسخ لهم won39t يكون مشكلة (عدة ثوان على الأكثر). شكرا نداش ماتان 5 مايو 15 في 7:57 هذا يعتمد تماما على كيفية كتابة العملية السجلات. كوبيترونكات يعمل فقط، إذا تم إلحاق رسائل السجل إلى الملف (على سبيل المثال مهما غغت لوغفيل، وليس عندما يتم إعادة توجيه الإخراج (على سبيل المثال مهما غغ لوغفيل) ل رسيسلوغ على وجه التحديد، فإنه ربما يكون من المنطقي ترك الأشياء كما هي السبب الأساسي هو أن رسيسلوغ يحتوي على طوابير داخلية يمكن استخدامها في الحالات التي يصبح فيها مقبض إخراجها غير متوفر. التحميل سوف أ) يؤدي رسيسلوغ إلى إعادة إنشاء ملف السجل الخاص به، و b) تسبب أي أحداث قائمة الانتظار إلى مسح إلى الملف على خلق. قد يكون كوبيترونكات لا ضرر (على الرغم من أنني سوف تكون قلقة بشأن خطوط مكتوبة جزئيا يجري اقتطاع)، ولكن أود أن تميل إلى الاعتقاد بأن كوبيدليتيرلواد أكثر أمانا من وجهة نظر النزاهة. كما ذكر فاكر. منذ رسيسلوغ يمكن التعامل مع الوضع حيث يصبح ملفها غير متوفر، ليس هناك سبب مقنع لاستخدام كوبيترونكات. وكما ذكر سيليفانوفافيل. رسيسلوغ يتطلب في الواقع تكوين معين للتعامل مع نسخ اقتطاع بشكل صحيح. لذلك إذا فقط لأن استخدام نهج إعادة تحميل يتطلب انحرافا أقل من التكوين الافتراضي، وأود أن يبقيه. الجواب الخاص بك 2017 كومة إكسهانج، إنسي تريد استخدام log4j لكتابة السجلات ذات الصلة التدقيق إلى ملف سجل معين، دعونا نقول aud. log. أنا لا أريد استخدام سيسلوغابندر (أودب مقرها) لأنني لا أريد أن يكون متسامحا إلى فقدان البيانات. بالإضافة إلى ذلك، أنا باستخدام لوغروتات لتدوير aud. log عندما يحصل على ملف لحجم معين. أنا تواجه هو أنه عندما تدور لوغروتات ملف التدقيق. بلوغ إلى aud. log.1، log4j يحتفظ الكتابة إلى audit. log.1 أخرى من الكتابة إلى aud. log. وأنا أعلم أنني يمكن استخدام رولينغفيلابندر للقيام دوران السجل أخرى من استخدام لوغروتات، لذلك عندما رولينغفيلابندر لفات الملف، فإنه التحول إلى ملف جديد دون متاعب. ولكن السبب أنا غير قادر على استخدام رولينغفيلابندر هو أنني أريد أن استخدام لوغروتاتس وظيفة آخر تدوير لتحريك بعض البرامج النصية بعد يحدث التناوب التي لا يمكن توفيرها من قبل رولينغفيلابندر. طريقة يائسة أخرى يمكن أن أفكر في هو كتابة log4j مخصصة المزيل نفسي لإغلاق ملف السجل (audit. log.1) وفتح واحد جديد (audit. log) عندما يكتشف يتم تدوير الملف. أنا لم تستخدم إكستيرنالييرولدفيلابندر، ولكن إذا كان من الممكن استخدام لوغروتات آخر تدوير لإرسال إشارة إلى إكسترناليروليدفيلابندر وجعل log4j يدرك الملف يتم استدارة، والبدء في الكتابة إلى ملف جديد فقط أتساءل هل هناك بعض مثني مثل أن سبق أن اخترعت أو تفعل أنا لديها خيارات أخرى لحل هذه المشكلة

Comments