Site Suche

Site menu:

 

open all | close all

 

Archiv


Ich höre gerade
@ 06.01.09 00:30:


Tangerine Dream
Mojave Plan

White Eagle

Apache2 schreibt nach Logrotate weiterhin in alte Logs

16. November 2007 von Lars Schenk

Unter Debian Etch habe ich auf einer EC2 basierten virutellen Maschine die Apache2 Logs nach /mnt/ verlagert, weil die Logs beim Rebundlen des Images nicht included werden sollen und ich somit alle flüchtigen Dateien in einen /mnt Folder auslagere, den ich auch nicht über S3 persistent mache.

Dabei habe ich das Problem umgehen müssen, das Apache2 nach dem Logrotate weiterhin in die alten Logs schreibt und die neu angelegten Logs leer bleiben (0 Bytes). Abhilfe bringt das Ersetzen der ‘/etc/init.d/apache2 restart > /dev/null’ Anweisung in /etc/logrotate.d/apache2 durch apache2ctl:

/mnt/var/log/apache2/*.log {
    weekly
    missingok
    rotate 52
    compress
    delaycompress
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
        if [ -f /var/run/apache2.pid ]; then
            /usr/sbin/apache2ctl restart > /dev/null
        fi
    endscript
}

Auf einer anderen Debian Etch Maschine (die jedoch nicht EC2 basiert ist) wo die Logs am original Ort liegen, gab es das Problem nicht. Beide Maschinen nutzen awstats. Einen grundlegenden Unterschied der Apache2 Config konnte ich auf die Schnelle nicht erkennen, so dass mir die Ursache für das Problem (warum schafft ‘/etc/init.d/apache2 restart’ es nicht was apache2ctl vermag - das Verwenden der neuen Logs anzustossen) nicht ersichtlich ist und ich mit diesem Workaround erstmal leben muss.

Im /etc/init.d/apache2 Script ist der apache2ctl Aufruf noch eingebetet in folgenden Block:

     restart | force-reload)
        log_begin_msg "Forcing reload of web server (apache2)..."
        if ! apache_sync_stop; then
                        log_end_msg 1
                fi
        if $APACHE2CTL start; then
                        log_end_msg 0
                else
                        log_end_msg 1
                fi
    ;;
    *)

Die Funktion apache_sync_stop, die wiederum die apache_stop Funktion aufruft, wird wohl bei mir scheitern - aber was da genau schief… muss später mal ergründet werden.

Der Beitrag wurde am Freitag, den 16. November 2007 um 12:43 Uhr von Lars Schenk veröffentlicht. Sie können die Kommentare zu diesen Eintrag durch den RSS 2.0 Feed verfolgen. Sie können einen Kommentar schreiben, oder einen Trackback auf Ihrer Seite einrichten.

Kategorie: Virtualisierung
Tags: ,
Social Bookmarks Diese Icons verlinken auf Bookmark Dienste bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
  • Digg
  • del.icio.us
  • Google Bookmarks
  • YahooMyWeb
  • Webnews
  • StumbleUpon
  • Folkd
  • Furl
  • Live-MSN
  • Slashdot
  • Y!GG
  • Bloglines
  • Technorati
  • Linkarena
  • MisterWong
  • Ask
  • Facebook
  • TwitThis

Eine Reaktion zu “Apache2 schreibt nach Logrotate weiterhin in alte Logs”

  1. Mowli

    Mich würde es interessieren, was da schiefläuft-und ich wäre froh, wenn du uns darüber auf dem Laufenden hälst, denn du hast doch so einige gute Gedanken, die mir so noch gar nicht gekommen sind diesbezüglich.

Einen Kommentar schreiben