NginX लॉग रोटेशन


9

मैं एक ही सर्वर पर NginX के माध्यम से कुछ अलग डोमेन की सेवा कर रहा हूं और वे प्रत्येक अपनी फ़ाइल में लॉग इन करते हैं। मुझे इन फ़ाइलों को घुमाने और संपीड़ित करने के लिए एक स्क्रिप्ट सेट करने की आवश्यकता है और इसे क्रोन में जोड़ें।

मुझे पता है कि एक बार पुरानी ले जाने के बाद मुझे एक नई लॉग फ़ाइल खोलने के लिए NginX प्राप्त करने के लिए कुछ करना होगा। क्या कोई मुझे nginx लॉग फ़ाइलों को सुरक्षित रूप से घुमाने की प्रक्रिया दे सकता है? मैं अनुमान लगा रहा हूं कि मुझे लॉगोटेट का उपयोग करने की आवश्यकता है, मैं इसे कैसे कॉन्फ़िगर करूं?

सिस्टम:

  • Ubuntu 9.04 सर्वर एड।
  • nginx / 0.7.61

जवाबों:


18

यह यूनिक्स डेमन्स के बीच एक अनौपचारिक अर्ध-मानक बन गया है कि वे अपनी लॉग फ़ाइलों को फ्लश और / या घुमाते हैं, जब आप उन्हें हैंगअप सिग्नल ( SIGHUP) भेजते हैं । नगनेक्स पत्र के लिए इस सम्मेलन का पालन नहीं करता है, लेकिन यह USR1उसी तरह से संकेत का जवाब देता है , जैसा कि नगनेक्स वेबसाइट पर लॉग लॉग रोटेशन शीर्षक के तहत प्रलेखित है ।

तो, आप कुछ इस तरह की कोशिश कर सकते हैं

kill -s USR1 `pidof nginx`

1
एक और तरीका है, "pkill -USR1 -n -x nginx"
पलानी

11

लॉगगिनिंग नेग्नेक्स लॉग्स:

# nginx SIGUSR1: Re-opens the log files.
/opt/nginx/logs/access.log {
  missingok
  notifempty
  delaycompress
  sharedscripts
  postrotate
    test ! -f /opt/nginx/logs/nginx.pid || kill -USR1 `cat /opt/nginx/logs/nginx.pid`
 endscript 
}

/opt/nginx/logs/error.log {
  missingok
  notifempty
  delaycompress
  sharedscripts
  postrotate  
    test ! -f /opt/nginx/logs/nginx.pid || kill -USR1 `cat /opt/nginx/logs/nginx.pid`
  endscript
}

logrotating रेल उत्पादन लॉग:

/home/app_user/apps/railsapp/log/production.log {
  missingok
  notifempty
  delaycompress
  sharedscripts
  postrotate
    test ! -f /opt/nginx/logs/nginx.pid || kill -USR1 `cat /opt/nginx/logs/nginx.pid`
  endscript
}

मुझे इसे किस फ़ाइल में डालना चाहिए?
एमिल स्टेंस्ट्रम

ubuntu का उपयोग करते समय, आपको इस फ़ाइल में कोड की इन पंक्तियों को रखना चाहिए /etc/logrotate.d/nginx:। और यह प्रभावी होगा।
सीवेई शेन Shen

3

यदि आप लॉगरोटेट का उपयोग करते हैं, तो लॉगगेट.कॉन्फ़ के नग्नेक्स अनुभाग में निम्नलिखित (सही स्थान के साथ) जोड़ें:

postrotate
  kill -s USR1 `cat /location/of/nginx.pid`
endscript

लॉग्रोट के अनुसार (8) मैन पेज

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