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, -x
um /bin/sh
Debug-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.