Seite 1 von 1

Logrotate funktioniert nicht mehr

Verfasst: Do 21. Apr 2011, 11:38
von Indersuppe
Hallo,

ich habe seit paar Tagen das Problem, dass Logrotate nicht mehr funktioniert.

Ich benutze das Onlinescript: logmini.sh
logmini.sh (Logfile-Rotation, stuendlich, CF Systeme, mit wenig Platz)

Rotationszeitplan: Stuendlich
Rotationsgroessen: syslog 3MB, Restliche 1MB, EMU-Logs 1MB

Beachte das je nach Rotationszeit die Groessen ueberschritten werden!

Script starten? (j/n): j
Sollen alte Logfiles geloescht werden? (j/n): n

Verbinde zum Updateserver..
Neue Konfiguration wird eingerichtet..
Rotiere Logfiles mit neuer Konfiguration..
error: exim4-base:3 unknown option 'hourly' -- ignoring line
Fertig :-)

-------------------------------------------------------------------------------
root@debian ~ >
Hier mal die Dateien die ich auf dem Futro habe:

/etc/crontab

Code: Alles auswählen

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

/etc/logrotate.d/rsyslog

Code: Alles auswählen

/var/log/syslog
{
        rotate 1
        size 3M
        missingok
        notifempty
        delaycompress
        compress
        postrotate
                invoke-rc.d rsyslog reload > /dev/null
        endscript
}

/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
{
        rotate 1
        size 1M
        missingok
        notifempty
        compress
        delaycompress
        sharedscripts
        postrotate
                invoke-rc.d rsyslog reload > /dev/null
        endscript
}

/var/log/ipc/CCcam-iusers.log
/var/log/ipc/CCcam-bcommands.log
/var/log/ipc/CCcam-restart-*.log
{
        rotate 1
        size 1M
        missingok

Wird der Inhalt von weiteren Dateien noch benötigt?

Re: Logrotate funktioniert nicht mehr

Verfasst: Do 21. Apr 2011, 11:53
von feissmaik
Inwiefern macht sich das denn bemerkbar?

Also bist du wirklich sicher das Logrotate nicht mehr funktioniert?

Weil wenn du einfach nur das Problem hast das /var/log zb ständig voll ist, obwohl du logmini.sh nutzt - heisst das noch lange nicht das Logrotate nicht funktioniert ;)

Dann solltest du zunächst lieber herrausfinden warum /var/log ständig voll ist, also welche Logdatei daran schuld is...
Es kann zb gut sein das dein CCcam irgendwelche Probleme hat und deswegen ungewöhnlich viel ins Log wirft und leider ist es Standardmässig auch so das die CCcam Meldungen gleich in 3 verschiedene Systemlogs geschrieben werden, also den dreifachen Platz belegen: /var/log/debug , /var/log/daemon.log und /var/log/syslog

2 davon kannst du zb ruhig abschalten indem du die Datei /etc/rsyslog.conf bearbeitest, runter zu " RULES " scrollst und dort dann folgendes auskommentierst (#):
#
# First some standard log files. Log by facility.
#
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
#cron.* /var/log/cron.log
#daemon.* -/var/log/daemon.log
#kern.* -/var/log/kern.log
#lpr.* -/var/log/lpr.log
#mail.* -/var/log/mail.log
#user.* -/var/log/user.log


#
# Some "catch-all" log files.
#
#*.=debug;\
# auth,authpriv.none;\
# news.none;mail.none -/var/log/debug
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none -/var/log/messages
Danach noch den Dienst neu starten: /etc/init.d/rsyslog restart

Re: Logrotate funktioniert nicht mehr

Verfasst: Do 21. Apr 2011, 16:28
von Indersuppe
Also ich hab mal 2 Logfiles ausgeschalten....

Aber wenn ich nun nicht ganz auf dem Holzweg bin dann sollten doch die Logilfes stündlich rotiert werden.

Code: Alles auswählen

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
Also immer um xx.17 Uhr...

Nun ist das syslog über 25 MB groß und wurde nicht rotiert.


Hier mal eine Übersicht über den Inhalt von /etc/cron.hourly:

Bild

/etc/cron.hourly/logrotate

Code: Alles auswählen

#!/bin/sh

test -x /usr/sbin/logrotate || exit 0
/usr/sbin/logrotate /etc/logrotate.conf
/etc/cron.hourly/rsyslog

Code: Alles auswählen

/var/log/syslog
{
	rotate 1
	hourly
	size 5M
	missingok
	notifempty
	delaycompress
	compress
	postrotate
		invoke-rc.d rsyslog reload > /dev/null
	endscript
}

/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
{
	rotate 1
	hourly
	size 5MB
	missingok
	notifempty
	compress
	delaycompress
	sharedscripts
	postrotate
		invoke-rc.d rsyslog reload > /dev/null
	endscript
}

/var/log/ipc/CCcam-iusers.log
/var/log/ipc/CCcam-bcommands.log
/var/log/ipc/CCcam-restart-*.log
/var/log/ipc/NewCS.log
{
	rotate 1
	hourly
	size 2M
	missingok
	notifempty
	delaycompress
	compress
	postrotate
		invoke-rc.d rsyslog reload > /dev/null
	endscript
}


Re: Logrotate funktioniert nicht mehr

Verfasst: Do 21. Apr 2011, 16:53
von feissmaik
Wo hast du denn die Datei /etc/cron.hourly/rsyslog her? :o

Also vom logmini.sh Script wird die nicht installiert...
Den Eintrag " hourly " gibts hier glaub ich auch nicht, steht so auch nicht im logmini.sh Script und wird warscheinlich auch nicht funktionieren, siehe -> man logrotate

Mit firsch installiertem Debian sollte das /etc/cron.hourly Verzeichniss eigentlich leer sein und wegen des logmini.sh Scripts kommt dann die /etc/cron.hourly/logrotate Datei dazu (bzw wird vom cron.daily in cron.hourly verschoben)...
Weil logrotate ist das "Programm" was stündlich ausgeführt werden soll - Aber mit irgendwelchen Configs für logrotate kann cron nicht wirklich was anfangen ;)
logmini.sh erstellt die Datei /etc/logrotate.d/rsyslog was eine config Datei für logrotate ist...

Re: Logrotate funktioniert nicht mehr

Verfasst: Do 21. Apr 2011, 17:04
von Indersuppe
Okay. Ich habe den Ordner mal geleert und dann das Script neu installiert:

Nun habe ich nur eine Datei in /etc/cron.hourly/logrotate mit dem Inhalt:

Code: Alles auswählen

#!/bin/sh

test -x /usr/sbin/logrotate || exit 0
/usr/sbin/logrotate /etc/logrotate.conf
Muss ich sonst noch was beachten oder erst mal beobachten was passiert?

Re: Logrotate funktioniert nicht mehr

Verfasst: Do 21. Apr 2011, 21:31
von Indersuppe
Mittlerweile ist syslog ca. 40 MB schwer. Wie kann ich den logrotate von Hand anstoßen um zu schauen ob das funktioniert?

Re: Logrotate funktioniert nicht mehr

Verfasst: Fr 22. Apr 2011, 09:51
von feissmaik
Es funktioniert auf jedenfall also wieso bei dir nicht?
...Vielleicht solltest du auch logrotate nochmal neu installieren weil du scheinst da ja selber schon dran herrum gepfuscht zu haben -> weil crontab kann mit den configs für logrotate nicht wirklich etwas anfangen und das System wird das 100% so nicht eingerichtet haben und du hattest da noch viel mehr dateien drin als nur rsyslog von/für IPC!
Aber diesmal bitte nicht manuell an den configs herrumspielen oder irgendwas irgendwohin kopiern ;)


Zum testen der logrotate config -> logrotate -d /etc/logrotate.conf

( les bitte man logrotate ! )


cron ist ein Dienst was andere Dienste/Programme regelmässig startet/ausführt
logrotate ist der Dienst/das Programm welches regelmässig von cron gestartet/ausgeführt wird
logmini.sh stellt logrotate so ein, dass es jede stunde von cron ausgeführt wird und konfiguriert logrotate entsprechend....

Re: Logrotate funktioniert nicht mehr

Verfasst: Fr 22. Apr 2011, 11:12
von Indersuppe
Wenn ich es manuell ausführe erhalte ich das für syslog:

Code: Alles auswählen


rotating pattern: /var/log/syslog
 3145728 bytes (1 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/syslog
  log needs rotating
rotating log /var/log/syslog, log->rotateCount is 1
would compress log with: /bin/gzip
renaming /var/log/syslog.1.gz to /var/log/syslog.2.gz (rotatecount 1, logstart 1, i 1),
renaming /var/log/syslog.0.gz to /var/log/syslog.1.gz (rotatecount 1, logstart 1, i 0),
renaming /var/log/syslog to /var/log/syslog.1
creating new log mode = 0640 uid = 0 gid = 4
running postrotate script
running script with arg /var/log/syslog: "
                invoke-rc.d rsyslog reload > /dev/null
"
removing old log /var/log/syslog.2.gz

Allerdings macht er mit der Datei nichts...

WIe installiere ich es neu?

Re: Logrotate funktioniert nicht mehr

Verfasst: Fr 22. Apr 2011, 11:29
von feissmaik
...Dann wird er bestimmt irgendwo anders einen Fehler ausgeben und macht es deswegen nicht - ein einziger Fehler irgendwo reicht aus damit garnix mehr geht...

Wie bereits gesagt hast du bei dir bereits was kaputt gemacht indem du die logrotate configs cron zum fras vorgeworfen hast...
Kann gut sein das du noch mehr kaputt gemacht hast - das kann ich von hier schlecht nachvollziehen was du alles gemacht/probiert hast und will ich ehrlich gesagt auch eigentlich garnicht wissen ;)

Normalerweise deinstalliert mans mit: apt-get purge logrotate
Dir würde ich aber zusätzlich noch das empfehlen: rm -rf /etc/logrotate*
Und erst danach neu installiern...: apt-get update && apt-get install logrotate



PS: Wenn du mittlerweile vllt ausnahmsweise mal man logrotate gelesen hättest, solltest du wissen das er bei logrotate -d so oder so nichts an den Datein verändert weil das der debug mode is um Fehler zu finden...

Re: Logrotate funktioniert nicht mehr

Verfasst: Fr 22. Apr 2011, 11:34
von Indersuppe
Ja ich habe mir die MAN-Page angesehen....

Ich hab es nun neu installiert und anschließend über die Online Scripts erneut das logmidi.sh ausgeführt.

Nun werde ich mal abwarten was passiert und sonst eventuell heute Nacht Debian komplett neu aufsetzen.