मैन्युअल रूप से लॉगफ़ाइल को rsyslogd के साथ घूमना


10

मैं लॉगफ़ाइल रोटेशन का उपयोग करने के लिए मजबूर करना चाहता हूं logrotate -f /var/log/syslog, लेकिन यह केवल रिटर्न टन है:

error: syslog:1 unknown option 'May' -- ignoring line
error: syslog:1 unexpected text

मुझे पता है कि इस प्रणाली पर rsyslogd चल रहा है। कैसे घुमाएगी /var/log/syslog? मैं इसे खाली चाहता हूं।

जवाबों:


23

आप यह नहीं बताते logrotateकि कमांड लाइन पर किस फाइल को घुमाना है। आप इसे एक कॉन्फ़िगरेशन फ़ाइल पास करते हैं। तो आपके मामले में, logrotateपढ़ रही है /var/log/syslogऔर एक कॉन्फ़िग फ़ाइल के रूप में यह पार्स करने का प्रयास और नाकाम रहने के (इसलिए अपने त्रुटियों)।

यदि आप /var/log/syslogइसे घुमाना चाहते हैं, तो इसे logrotateकहीं न कहीं एक विन्यास फाइल में सूचीबद्ध किया जाना चाहिए , और आप बस चलाते हैं logrotate। यदि यह हाल ही में घुमाया गया है, तो logrotate -fइसे फिर से करने के लिए मजबूर करने के लिए।

यहाँ /var/log/syslogडेबियन से एक उदाहरण प्रविष्टि है ,

/var/log/syslog
{
        rotate 7
        daily
        missingok
        notifempty
        delaycompress
        compress
        postrotate
                invoke-rc.d rsyslog reload > /dev/null
        endscript
}

तो, आपको एक फ़ाइल की जरूरत है, सामान्य रूप से या तो /etc/logrotate.confएक फ़ाइल स्निपेट के रूप में /etc/logrotate.dआपके /etc/logrotate.confबिंदुओं को संभालने के लिए , और फिर आप बस चलाते हैं logrotate /etc/logrotate.conf

चूंकि आप डेबियन चला रहे हैं, यह संभवतः सभी जगह है, और आपको वास्तव में करने की आवश्यकता है logrotate -f /etc/logrotate.conf(ध्यान दें, यह वर्तमान में लॉग इन में कॉन्फ़िगर किए गए प्रत्येक लॉग को घुमाएगा )।

यदि आप सही मायने में केवल घूमना चाहते हैं /var/log/syslog, तो आपको एक कॉन्फिग फाइल बनानी होगी, जो कि /etc/logrotate.conf+ की सामग्री के आधार पर सिर्फ एक लॉग करे /etc/logrotate.d/rsyslog

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.