Logrotation problem

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
faderandi
Beiträge: 3
Registriert: 14.05.2009 11:27:35

Logrotation problem

Beitrag von faderandi » 14.05.2009 11:32:14

Hallo zusammen habe ein kleines Logrotationproblem.

Zum einen funktioniert mein configfile unter /etc/logrotation.d/ nur wenn ich es direkt ausführen lasse mit "logrotate -f configfile" zum anderen werden anschließend in das neue leere logfile keine daten mehr geschrieben. Erst wieder wenn ich den apache restarte.

Wäre super wenn mir jemand schnelle Hilfe leisten könnte.


Gruß
Andi

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Logrotation problem

Beitrag von rendegast » 14.05.2009 16:10:29

/etc/logrotate.d/apache2 :

Code: Alles auswählen

...
	postrotate
		if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
			/etc/init.d/apache2 reload > /dev/null
		fi
	endscript
Vielleicht das 'reload' durch 'restart' ersetzen?

Auch sind hier Marker möglich, die Dir den Status beim Durchlauf anzeigen, zBsp

Code: Alles auswählen

...
	postrotate
		sleep 3
		lsof | grep /var/log/apache >> /tmp/apache_pidof
		pidof apache2 >> /tmp/apache_pidof
		echo PID $(<  /var/run/apache2.pid) >> apache_pidof
		if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
			/etc/init.d/apache2 reload > /dev/null
			echo RELOADED >> /tmp/apache_pidof
		fi
		lsof | grep /var/log/apache >> /tmp/apache_pidof
		echo __________ >> /tmp/apache_pidof
	endscript
(Die Kommandos möglicherweise auch mit vollem Pfad)
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

faderandi
Beiträge: 3
Registriert: 14.05.2009 11:27:35

Re: Logrotation problem

Beitrag von faderandi » 15.05.2009 08:15:17

Hallo nochmal,

ermal vielen Dank rendegast für deine schnelle Anwort. Restart möchte ich nicht schreiben, denn wenn der webserver warum auch immer nicht mehr startet hab ich ein Problem :).

Was würde den die Marken anzeigen?

Vielleicht hab ich auch einen Fehler in der Conf?

Code: Alles auswählen

/home/www/logs/*.log {
        daily
        missingok
        create
        rotate 15
        compress
        notifempty
        postrotate
        endscript
}

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Re: Logrotation problem

Beitrag von nepos » 15.05.2009 10:36:19

Also, bei meinem Apache steht folgendes:

Code: Alles auswählen

/var/log/apache2/*.log {
        weekly
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
        create 640 root adm
        sharedscripts
        postrotate
                if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
                        /etc/init.d/apache2 reload > /dev/null
                fi
        endscript
}
Der Restart wird bei postrotate erledigt, wo bei dir gar nix steht...
Musst halt eventuell das obige passend gemacht für dich übernehmen.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Logrotation problem

Beitrag von rendegast » 15.05.2009 13:24:10

Was würde den die Marken anzeigen?

Code: Alles auswählen

...
   postrotate
      sleep 3                                            # Eine kleine Pause
      lsof | grep /var/log/apache >> /tmp/apache_pidof
      pidof apache2 >> /tmp/apache_pidof
      echo PID $(<  /var/run/apache2.pid) >> apache_pidof
      if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
         /etc/init.d/apache2 reload > /dev/null
         echo RELOADED >> /tmp/apache_pidof
      fi
      lsof | grep /var/log/apache >> /tmp/apache_pidof
      echo __________ >> /tmp/apache_pidof
   endscript
Die beiden 'lsof | grep /var/log/apache':
würden hier nicht richtig helfen, da Du ja nicht in /var/log/apache2/ loggst(?),
aber wenn dort 'grep www/log' stünde, würde das erste keine Verbindung des apache zu seinen Logs anzeigen,
da diese Verbindung durch das logrotate beendet wäre -> keine Ausgabe.
(apache loggt selbst, nicht über syslogd, richtig?)
Diese Verbindung wird erst wieder durch den reload hergestellt -> Ausgabe: "apache ... /home/www/logs/...log"
Aber der reload ist in Deiner Datei nicht vorhanden, wie nepos sagt.


Die beiden Ausgaben der PID sollten zeigen, ob der reload nicht funktioniert, weil in der PID-Datei vielleicht eine falsche (zBsp veraltete) PID steht, die nicht zum gerade laufenden Prozeß paßt.
Da sowas den reload/restart über das init-Skript verhindern kann.
Once again: Aber der reload ist in Deiner Datei nicht vorhanden, wie nepos sagt.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

faderandi
Beiträge: 3
Registriert: 14.05.2009 11:27:35

Re: Logrotation problem

Beitrag von faderandi » 18.05.2009 08:17:49

Problem gelöst.

Das reload hats gebracht. Alles wunderbar!

DANKE!

Antworten