मैंने अपने अनुप्रयोग लॉग के लिए घुमाए जाने के लिए "logrotate.d" निर्देशिका में दो स्क्रिप्ट जोड़ दीं। यह उनमें से एक के लिए config है:लॉग्रोटेट क्रॉन जॉब कुछ लॉग घूर्णन नहीं करता
<myLogFilePath> {
compress
copytruncate
delaycompress
dateext
missingok
notifempty
daily
rotate 30
}
वहाँ "cron.daily" निर्देशिका (जो क्रॉन लॉग के अनुसार रोज चलने किया जा रहा है) में एक "logrotate" स्क्रिप्ट है:
#!/bin/sh
echo "logrotate_test" >>/tmp/logrotate_test
#/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1
/usr/sbin/logrotate -v /etc/logrotate.conf &>>/root/logrotate_error
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
पहला गूंज कथन काम कर रहा है।
लेकिन मैं अपने आवेदन लॉग लगता है अकेले, घुमाया जा रहा नहीं कर रहे हैं, जबकि httpd जैसे अन्य लॉग घुमाया जा रहा है **
** और मैं यह भी उल्लेख किया "logrotate_error" फ़ाइल में किसी भी उत्पादन नहीं दिख रहा है (लेखन अनुमति की आवश्यकता है सभी उपयोगकर्ताओ के लिए)।
हालांकि syslog का कहना है: "logrotate: चेतावनी के साथ असामान्य रूप से बाहर निकल गया [1]"
लेकिन जब मैं में एक ही "logrotate" रन "cron.daily" स्क्रिप्ट मैन्युअल रूप से, सब कुछ काम कर ठीक लग रहा है।
दैनिक क्रॉन शेड्यूल के दौरान घूमना क्यों नहीं है? क्या मुझसे यहां कुछ गलत हो रहा है?
यदि मुझे यह बहुत आवश्यक सहायता मिलती है तो यह बहुत अच्छा होगा।
UPDATED: ऐसा लग रहा है, यह SELinux की वजह से है - मेरे उपयोगकर्ता घर निर्देशिका में लॉग फाइल प्रतिबंध SELinux द्वारा लगाए गए है और जब logrotate स्क्रिप्ट चलाने है:
SELinux is preventing /usr/sbin/logrotate from getattr access on the file /home/user/logs/application.log
जहां इस से लिया जाता है? क्या आप इसे जोड़ सकते हैं? मैंने इसे गुगल किया है और मुझे इस तरह के कई संदेश दिखाई देते हैं, लेकिन मुझे स्रोत नहीं मिल रहा है। क्या यह डिफ़ॉल्ट संदेश है जो SELinux देता है? –