Warum wird Logrotate nicht automatisch rotiert?

Warum wird Logrotate nicht automatisch rotiert?

Ich habe eine tägliche Rotation für Sie eingerichtet, das tun Sie aber nicht.

Aber wenn ich es manuell mache, funktioniert es.

logrotate -vf /etc/logrotate.conf

Dies ist meine zu rotierende Protokolldatei. /mylogs/log (-rwxrwxrwxrwx 1 admin admin)

Dies ist die Systemkonfiguration.

/etc/logrotate.conf (-rw-r--r-- 1 root root):

/mylogs/log {
create 0640 root utmp
missingok
daily
copytruncate
rotate 10
dateext
}

/etc/logrotate.d/syslog (-rw-r--r-- 1 root root):

/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
missingok
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || 
true
endscript
}

/etc/cron.daily/logrotate (-rwx------ 1 root root):

#!/bin/sh

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with 
[$EXITVALUE]"
fi
exit 0

/etc/crontab (-rw-r--r--. 1 root root):

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR 
sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

Zusätzliche Informationen. CentOS-Betriebssystem

Wie kann ich es dazu bringen, sich richtig zu drehen?


AKTUALISIEREN

Ich denke, das Problem liegt in der Zuweisung von Besitzer, Gruppe und Berechtigungen für drei Dinge: Der Ordner /mylogs/ (root root) Die Datei /mylogs/log (admin admin)
Die Option „create“ von logrotate.conf (create 0640 root utmp)

Jemand, bei dem logrotate richtig läuft. Bitte lassen Sie mich wissen, wie Sie die vorherigen 3 Werte zugewiesen haben. der Ordner - die Datei - die Konfiguration in logrotate.conf erstellen

Antwort1

Verbinden Sie hier zwei Saiten

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status 
/etc/logrotate.conf

Zu einer Zeichenfolge wie dieser:

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf

Oder fügen Sie nach der ersten Zeichenfolge einen Backslash ein, etwa so:

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status \
/etc/logrotate.conf

ps es gibt eine hervorragende Option, -xum /bin/shDebug-Ausgaben aus der Shell zu erstellen, und ich denke, Sie werden diesen Tippfehler beim nächsten Mal finden, wenn Sie versuchen,/bin/sh -x /etc/cron.daily/logrotate

Antwort2

Nach mehreren Tests habe ich es geschafft, es wieder richtig zum Drehen zu bringen.

Dazu habe ich den Benutzer (root) und die Gruppe (root) der Logdatei zugewiesen.

Ändern Sie auch Ihre Berechtigungen auf 666.

Dem Ordner, der die Datei enthält, werden ein Benutzer (root) der Gruppe (root) und die Berechtigungen 755 zugewiesen.

Schließlich wurde in der Konfiguration von logrotate.conf dieser Eigenschaft „create“ die Konfiguration Benutzer (root), Gruppe (utmp) und Berechtigungen (644) zugewiesen.

Ich hoffe, diese Informationen sind hilfreich, falls jemand ein ähnliches Problem hat.

Grüße und Dankeschön.

verwandte Informationen