Manfred: Apache schreibt keine Logfile-Einträge mehr

Hallo,

heute habe ich gemerkt, dass mein Apache (2.0.49 unter Suse Linux 9.1) seit dem 16. Juni keine Log-File Einträge mehr schreibt. Einige Einträge sind mitten in der Zeile abgeschnitten. In der Apache error_log werden aber beim Hoch- und Runterfahren keine Fehlermeldungen ausgegeben und auch um den betreffenden Termin sind keine dementsprechenden Fehlermeldungen vorhanden.

Wenn ich die bisherigen Log-Dateien in ein anderes Verzeichnis verschiebe und Apache neustarte, werden neue Log-Files im Verzeichnis /srv/www/log (so in der Virtual Hosts Datei definiert) erstellt, aber die Log-Files bleiben leer (Rechte 644, User root, Gruppe root, auch mehr Rechte haben nichts gebracht).

Zum Testen habe ich auch die Apache-Konfigurationsdateien und /etc/passwd, /etc/shadow und /etc/group auf den Stand von Januar zurückgesetzt, aber auch das hat nichts geholfen.

Hat jemand eine Idee, denn das ist sehr seltsam, da die Log-Files ja erstellt werden.

Viele Grüße,
Manfred

  1. Hallo Freunde des gehobenen Forumsgenusses,

    heute habe ich gemerkt, dass mein Apache (2.0.49 unter Suse Linux 9.1) seit dem 16. Juni keine Log-File Einträge mehr schreibt. Einige Einträge sind mitten in der Zeile abgeschnitten. In der Apache error_log werden aber beim Hoch- und Runterfahren keine Fehlermeldungen ausgegeben und auch um den betreffenden Termin sind keine dementsprechenden Fehlermeldungen vorhanden.

    Die Festplatte ist voll?

    Gruß
    Alexander Brock

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hallo,

      oh, ja, jetzt seh ichs, tatsächlich, die Festplatte ist voll, obwohl, ... nein, doch nicht.

      Und bevor du fragst: Der Strom ist an, der Monitor auch, ja ich habe die Bildschirmdarstellung aktiviert und nein, ich drücke nicht die AnyKey-Taste.

      Alles klar?

      Hallo Freunde des gehobenen Forumsgenusses,

      heute habe ich gemerkt, dass mein Apache (2.0.49 unter Suse Linux 9.1) seit dem 16. Juni keine Log-File Einträge mehr schreibt. Einige Einträge sind mitten in der Zeile abgeschnitten. In der Apache error_log werden aber beim Hoch- und Runterfahren keine Fehlermeldungen ausgegeben und auch um den betreffenden Termin sind keine dementsprechenden Fehlermeldungen vorhanden.

      Die Festplatte ist voll?

      Gruß
      Alexander Brock

      1. Hi,

        Die Festplatte ist voll?

        oh, ja, jetzt seh ichs, tatsächlich, die Festplatte ist voll, obwohl, ... nein, doch nicht.

        koestlich! Du bist verdammt lustig fuer einen Admin, dessen Server "seit dem 16. Juni keine Log-File Einträge mehr schreibt".

        Gruss,
        Ludger

        1. Hallo,

          ja nicht, finde ich auch, noch lustiger finde ich aber "Festplatte voll?" nach einer detaillierten Fehlerbeschreibung. Jedenfalls schwer zu toppen ;)

          Viele Grüße

          Hi,

          Die Festplatte ist voll?

          oh, ja, jetzt seh ichs, tatsächlich, die Festplatte ist voll, obwohl, ... nein, doch nicht.

          koestlich! Du bist verdammt lustig fuer einen Admin, dessen Server "seit dem 16. Juni keine Log-File Einträge mehr schreibt".

          Gruss,
          Ludger

          1. Hi,

            ja nicht, finde ich auch, noch lustiger finde ich aber "Festplatte voll?" nach einer detaillierten Fehlerbeschreibung. Jedenfalls schwer zu toppen ;)

            das war natuerlich der Primaerbrueller, den Du dann ja auch auf das Allerkoestlichste abgefruehstueckt hast.

            Die "Festplatte-Voll"-Frage nach einer zumindest zweimonatigen Disfunktion des Serverloggins (andere Fehlerparameter wurden zudem ebenfalls recht ausfuerhlich beschrieben) war schon bemerkenswert. Aber gut, auch sowas scheint es ja zu geben.

            Gruss,
            Ludger

      2. Hallo Manfred,

        also wenn es auch die AnyKey-Taste nicht ist, wird es schwer ... ;-)

        Rein informativ, seine restlichen Funktionen fuehrt der Apache also noch aus, oder ?
        Dann stellt sich die Frage, wer darf ihm das Schreiben in die Logfile verbieten, hoechstwarscheinlich nur er selbst. Es gibt da sicher Regeln, wie gross so eine Feile maximal werden darf und was dann damit passiert. Danach wuerde ich mal suchen, also weniger ich sondern mehr Du ... ;-)

        Gruss Norbert

        1. Hallo Norbert,

          ja, alles andere funktioniert einwandfrei. Die Logfiles sind derzeit komplett leer, da ich die alten verschoben und der Apache neue erstellt hat und bisher (genau wie in die alten) nichts mehr reinschreibt.

          Merkwürdig ist, daß Apache auch mit LogLevel Debug keine Fehlermeldung darüber bringt...

          Viele Grüße

          Hallo Manfred,

          also wenn es auch die AnyKey-Taste nicht ist, wird es schwer ... ;-)

          Rein informativ, seine restlichen Funktionen fuehrt der Apache also noch aus, oder ?
          Dann stellt sich die Frage, wer darf ihm das Schreiben in die Logfile verbieten, hoechstwarscheinlich nur er selbst. Es gibt da sicher Regeln, wie gross so eine Feile maximal werden darf und was dann damit passiert. Danach wuerde ich mal suchen, also weniger ich sondern mehr Du ... ;-)

          Gruss Norbert

          1. hallo,

            Merkwürdig ist, daß Apache auch mit LogLevel Debug keine Fehlermeldung darüber bringt...

            "debug" ist eine Einstellung, bei der eigentlich _alles_ protokolliert werden sollte. Setze den LogLevel mal schrittweise höher und provoziere bewußt, beispielsweise durch Anforderung eines nicht vorhandenen cgi-Scripts, deinen Apache.

            Grüße aus Berlin

            Christoph S.

  2. Tach,

    Wenn ich die bisherigen Log-Dateien in ein anderes Verzeichnis verschiebe und Apache neustarte, werden neue Log-Files im Verzeichnis /srv/www/log (so in der Virtual Hosts Datei definiert) erstellt, aber die Log-Files bleiben leer (Rechte 644, User root, Gruppe root, auch mehr Rechte haben nichts gebracht).

    läuft dein Apache als root? Falls nein, kann es bei der derzeitigen Einstellung kein Logfiles geben und "chmod o+w" (natürlich nur zum testen ein chown wäre für längere Nutzung wesentlich sinnvoller, dabei auch an logrotate denken) sollte helfen. Falls ja, dann solltest du das aus Sicherheitsgründen dringend ändern.

    mfg
    Woodfighter

    1. Hallo,

      mein Apache läuft als wwwrun, dem Verzeichnis und den Log-Files habe ich jetzt mal den User wwwrun, die Gruppe www und die Rechte 666 zugewiesen. Der Apache läuft mit LogLevel Debug, leider ändert das alles nichts, er gibt immer noch keine besondere Fehlermeldung und auch keine Loginhalte aus :-(

      Viele Grüße,
      Manfred

      Tach,

      läuft dein Apache als root? Falls nein, kann es bei der derzeitigen Einstellung kein Logfiles geben und "chmod o+w" (natürlich nur zum testen ein chown wäre für längere Nutzung wesentlich sinnvoller, dabei auch an logrotate denken) sollte helfen. Falls ja, dann solltest du das aus Sicherheitsgründen dringend ändern.

      mfg
      Woodfighter

      1. Tach,

        mein Apache läuft als wwwrun, dem Verzeichnis und den Log-Files habe ich jetzt mal den User wwwrun, die Gruppe www und die Rechte 666 zugewiesen. Der Apache läuft mit LogLevel Debug, leider ändert das alles nichts, er gibt immer noch keine besondere Fehlermeldung und auch keine Loginhalte aus :-(

        dann benutze doch mal CustomLog um das Logfile einzustellen, vielleicht ist da irgendetwas verstellt.

        mfg
        Woodfighter

        1. Hallo,

          was mich irritiert, ist, daß Apache nicht einmal den Hauch eines Fehlers zurückgibt. LogLevel Debug kommt doch in die httpd.conf und die  Fehlerausgabe erfolgt in der Datei error_log, oder?

          Ich schätze, es läuft auf Apache neu installieren hinaus.

          Vielen Dank,
          Manfred

          Tach,

          mein Apache läuft als wwwrun, dem Verzeichnis und den Log-Files habe ich jetzt mal den User wwwrun, die Gruppe www und die Rechte 666 zugewiesen. Der Apache läuft mit LogLevel Debug, leider ändert das alles nichts, er gibt immer noch keine besondere Fehlermeldung und auch keine Loginhalte aus :-(

          dann benutze doch mal CustomLog um das Logfile einzustellen, vielleicht ist da irgendetwas verstellt.

          mfg
          Woodfighter

          1. hallo,

            LogLevel Debug kommt doch in die httpd.conf und die  Fehlerausgabe erfolgt in der Datei error_log, oder?

            Richtig. Allerdings kannst du "LogLevel" für jeden virtual host getrennt definieren.

            Grüße aus Berlin

            Christoph S.

  3. hallo,

    heute habe ich gemerkt, dass mein Apache (2.0.49 unter Suse Linux 9.1) seit dem 16. Juni keine Log-File Einträge mehr schreibt.

    Oh. Das sind über zwei Monate ...

    Wenn ich die bisherigen Log-Dateien in ein anderes Verzeichnis verschiebe und Apache neustarte, werden neue Log-Files im Verzeichnis /srv/www/log (so in der Virtual Hosts Datei definiert) erstellt, aber die Log-Files bleiben leer

    Das liest sich so, als ob dein virtual host nicht ganz korrekt konfiguriert wäre. Starte deinen Apache mal bloß mit der "Grundkonfiguration", also ohne virtual host. Das "Standard-log-Verzeichnis" ist bei einer SuSE /var/log/apache2. Bei einer neu angelegten log-Datei sollte zumindest sowas drinstehen:
      [Wed Aug 24 14:24:20 2005] [notice] Apache/2.0.49 (Linux/SUSE) configured -- resuming normal operations

    (Rechte 644, User root, Gruppe root, auch mehr Rechte haben nichts gebracht).

    Ähm ... wofür hast du diese Rechte gesetzt? Für das log-Verzeichnis? Das bringt dir nichts Neues, so ist es eigentlich "Voreinstellung". Fahr deinen Apache mal runter, wechsle zu root (su) und starte ihn neu (als root), ohne virtual host. Das Verzeichnis, in das er logs schreibt, sollte auf 644, Gruppe root und user root stehen, das tut es auch per "default". Und in der error_log muß dann mindestens die angeführte Zeile stehen.

    Zum Testen habe ich auch die Apache-Konfigurationsdateien und /etc/passwd, /etc/shadow und /etc/group auf den Stand von Januar zurückgesetzt

    Was hast du denn in diesen Verzeichnissen für Apache-Konfigurationsdateien liegen? Die haben dort absolut nichts zu suchen. Paßwörter und ähnliches haben für die Benutzeranmeldung an deinem Rechner Bedeutung, nicht aber für den Apache. Es gibt in /etc/shadow eine Zeile, die etwa
      wwwrun:*:8902:0:10000::::
    lauten sollte. Das hat aber mit dem Apache nichts zu tun.

    Hat jemand eine Idee, denn das ist sehr seltsam, da die Log-Files ja erstellt werden.

    Du solltest eventuell mal die Anweisungen aus deiner Konfiguration, die für die logs gelten, mitposten.

    Grüße aus Berlin

    Christoph S.

    1. Hallo,

      Das liest sich so, als ob dein virtual host nicht ganz korrekt konfiguriert wäre. Starte deinen Apache mal bloß mit der "Grundkonfiguration", also ohne virtual host. Das "Standard-log-Verzeichnis" ist bei einer SuSE /var/log/apache2. Bei einer neu angelegten log-Datei sollte zumindest sowas drinstehen:
        [Wed Aug 24 14:24:20 2005] [notice] Apache/2.0.49 (Linux/SUSE) configured -- resuming normal operations

      (Rechte 644, User root, Gruppe root, auch mehr Rechte haben nichts gebracht).

      Ähm ... wofür hast du diese Rechte gesetzt? Für das log-Verzeichnis? Das bringt dir nichts Neues, so ist es eigentlich "Voreinstellung". Fahr deinen Apache mal runter, wechsle zu root (su) und starte ihn neu (als root), ohne virtual host. Das Verzeichnis, in das er logs schreibt, sollte auf 644, Gruppe root und user root stehen, das tut es auch per "default". Und in der error_log muß dann mindestens die angeführte Zeile stehen.

      Diese Zeile schreibt er in die Datei /var/log/apache2/error_log. Der Dienst läuft auch wenn ich ihn als root starte automatisch unter dem User wwwrun. Ich starte und beende ihn über das Kommando httpd2 -k start/stop. Kann ich ihm sonst irgendwie sagen, dass er unter dem User root laufen soll?

      Was hast du denn in diesen Verzeichnissen für Apache-Konfigurationsdateien liegen? Die haben dort absolut nichts zu suchen. Paßwörter und ähnliches haben für die Benutzeranmeldung an deinem Rechner Bedeutung, nicht aber für den Apache. Es gibt in /etc/shadow eine Zeile, die etwa
        wwwrun:*:8902:0:10000::::
      lauten sollte. Das hat aber mit dem Apache nichts zu tun.

      Die Apache Konfigurationdateien liegen unter /etc/apache2.
      passwd, shadow und group habe ich nur geändert, da ich dachte, dass es an irgendwelchen Benutzerrechten liegt, da an den Apache-Konfigurationsdateien schon seit Monaten nichts mehr geändert wurde und diese für mich deshalb als Schuldige wegfallen.

      Ein Auszug aus der Virtual-Hosts-Datei:

      #NameVirtualHost 212.227.21.108:80
      UseCanonicalName Off
      php_admin_flag safe_mode Off
      php_admin_value safe_mode_exec_dir /home/htdocs/empty/
      LogFormat "%V:#:%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-agent}i"" confixx
      LogFormat "%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-agent}i"" confixx2
      CustomLog |/root/confixx/pipelog.pl confixx
      AcceptPathInfo  On
      HostnameLookups On

      <Directory "/home/htdocs">
              <Files ~ "^.ht">
                      deny from all
              </Files>
              AllowOverride None
              AllowOverride Indexes  AuthConfig Limit  FileInfo
              Options None
              Options +FollowSymLinks +Includes
      </Directory>

      <Directory "/home/htdocs/web0/html">
              Options -FollowSymLinks -SymLinksIfOwnerMatch
              <IfModule mod_access.c>
                      Allow from all
              </IfModule>
      </Directory>

      <VirtualHost 212.227.21.108:80>
              ServerName      web0.p15166521.pureserver.info
              ServerAlias     www.exbiku.com exbiku.com
              DocumentRoot    /home/htdocs/web0/html
              ErrorLog        log/exbiku.com-errorlog
              CustomLog       log/exbiku.com-accesslog common
              SuexecUserGroup web0 ftponly
              ScriptAlias     /cgi-bin/ /home/htdocs/web0/html/cgi-bin/
              php_admin_value open_basedir /home/htdocs/web0/
              php_admin_value file_uploads 1
              php_admin_value upload_tmp_dir /home/htdocs/web0/phptmp/
      </VirtualHost>

      1. Moin!

        <VirtualHost 212.227.21.108:80>
                ServerName      web0.p15166521.pureserver.info

        Ich würde hier nicht gerade Name oder IP eines Servers posten, der gerade keine Logfiles schreibt. Willst Du nicht die Admins bitten, dass zu löschen?

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix®

        --
        Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
      2. Moin!

        CustomLog |/root/confixx/pipelog.pl confixx

        Ah! Was macht denn ein:

        su

        Password:

        echo "hallo welt" | /root/confixx/pipelog.pl

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix®

        --
        Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
      3. hallo,

        [Wed Aug 24 14:24:20 2005] [notice] Apache/2.0.49 (Linux/SUSE) configured -- resuming normal operations
        Diese Zeile schreibt er in die Datei /var/log/apache2/error_log.

        Na, das ist doch erstmal was. Also: dein Apache schreibt sehr wohl Protoklldateien. Jetzt fehlt noch, was ich dir vorhin bereits geraten habe: fordere mal irgendeine nicht vorhandene Ressource an, beispielsweise ein cgoi-Script, das es nicht gibt, und provoziere damit eine Fehlermeldung. Die sollte dann auch in der error_log erscheinen, und damit wäre zumindest die "Grundkonfiguration" so weit, daß wieder protokolliert wird.

        Der Dienst läuft auch wenn ich ihn als root starte automatisch unter dem User wwwrun.

        Jaein. Nicht der ganze "Dienst", aber ein Kindprozeß.

        Ich starte und beende ihn über das Kommando httpd2 -k start/stop. Kann ich ihm sonst irgendwie sagen, dass er unter dem User root laufen soll?

        Nicht nötig. Aber du kannst dir mit YaST einmal anschauen, in welchen runleveln Apache überhaupt startbar ist und gegebenenfalls festlegen, daß er bereits bei Systemstart losrennen soll.

        Die Apache Konfigurationdateien liegen unter /etc/apache2.

        Ok, da gehören sie auch hin, normalerweise.

        passwd, shadow und group habe ich nur geändert, da ich dachte, dass es an irgendwelchen Benutzerrechten liegt.

        Davon bin ich nicht überzeugt.

        Ein Auszug aus der Virtual-Hosts-Datei:
        #NameVirtualHost 212.227.21.108:80

        Hm. Die IP hättest du verschweigen können. Aber schau dir mal die Fehlermeldung an, die ich erhalte:
         Warning: Unknown(): open_basedir restriction in effect. File(/srv/www/confixx/html/index.php) is not within the allowed path(s): (/home/htdocs/web2/) in Unknown on line 0
         Warning: Unknown(/srv/www/confixx/html/index.php): failed to open stream: Operation not permitted in Unknown on line 0
         Warning: (null)(): Failed opening '/srv/www/confixx/html/index.php' for inclusion (include_path='.:/srv/www/confixx/html/include:/srv/www/confixx/html') in Unknown on line 0
        Du könntest übrigens jetzt in der access_log einen Eintrag haben, der dir verrät, daß ich eben zugegriffen habe.

        LogFormat "%V:#:%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-agent}i"" confixx
        LogFormat "%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-agent}i"" confixx2
        CustomLog |/root/confixx/pipelog.pl confixx

        Das ist eine mehr als ausführliche Anzeige, die du haben möchtest. Bau dir dein LogFormat für "confixx" einfach nochmal schrittweise auf. Bei CustomLog stört mich das | erheblich, das doch hoffentlich nicht in deiner Originaldatei steht? Und ich bin nicht sicher, ob es sinnvoll ist, das Protokoll in eine *.pl schreiben zu lassen, allerdings weiß ich auch nbicht genau, wie confixx die logs auswerten möchte, um sie grafisch darzustellen (ich habe confixx nicht lokal installiert)

        Grüße aus Berlin

        Christoph S.

        1. Moin!

          Bei CustomLog stört mich das | erheblich, das doch hoffentlich nicht in deiner Originaldatei steht?
          Und ich bin nicht sicher, ob es sinnvoll ist, das Protokoll in eine *.pl schreiben zu lassen, allerdings weiß ich auch nbicht genau, wie confixx die logs auswerten möchte, um sie grafisch darzustellen (ich habe confixx nicht lokal installiert)

          Das tut er nicht. Er schreibt das Log in eine Pipe. Das bedeutet: Das Perl-Skript bekommt die Ausgaben anstelle des Logfiles. Normalerweise müsste jetzt das Skript die Datei schreiben.

          Wie Du jetzt schon festgestellt hast scheint es aber Probleme mit der confixx-Installation zu geben. Ich würde hier die Installation, vor allem aber die Konfiguration mal checken.

          Um inzwischen ein logging zu haben:
          Verzeichnis extra_log anlegen und dann:
          CustomLog |tee /var/log/apache2/extra_log/apache.log |/root/confixx/pipelog.pl confixx

          In der Shell als Root:
          apache2ctl restart
          Es ist doch der Apache2, den SuSE mitgeliefert hat- oder?

          Das tee heisst nicht nur so, es ist auch ein T-Stück im Rohr (pipe)...

          Er bekommt also ein logfile /var/log/apache2/extra_log/apache.log und die Weitergabe der Daten an das Perl-Skript pipelog.pl, in welchem ich den Fehler nunmehr _vermute_.

          MFFG (Mit freundlich- friedfertigem Grinsen)

          fastix®

          --
          Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
          1. hallo fastix®,

            Bei CustomLog stört mich das | erheblich
            Und ich bin nicht sicher, ob es sinnvoll ist, das Protokoll in eine *.pl schreiben zu lassen
            Das tut er nicht. Er schreibt das Log in eine Pipe.

            Ahhh, da kommen wir der Sache doch schon näher. Und es liegt tatsächlich an der Konfiguration für den virtual host und _dessen_ Festlegung, was und wie in eine Protokolldatei geschrieben wird.

            Das bedeutet: Das Perl-Skript bekommt die Ausgaben anstelle des Logfiles. Normalerweise müsste jetzt das Skript die Datei schreiben.

            Möglicherweise _soll_ es das tun, aber wenn du dir diese "pipe" mal genau anschaust, siehst du auch, warum es das nicht _kann_

            Wie Du jetzt schon festgestellt hast scheint es aber Probleme mit der confixx-Installation zu geben.

            ACK - in Verbindung damit, daß das nur den virtual host betrifft.

            Interessant wäre noch (was wir bisher nicht gefragt haben), ob es denn Einträge in der access_log gibt.

            Verzeichnis extra_log anlegen und dann:
            CustomLog |tee /var/log/apache2/extra_log/apache.log |/root/confixx/pipelog.pl confixx

            Schau dir mal an, was du hier für eine pipe schreibst bzw. vorschlägst, und was in https://forum.selfhtml.org/?t=113961&m=724903 vorgegeben ist:
              CustomLog |/root/confixx/pipelog.pl confixx
            Das ist keine pipe, und es steht _außerhalb_ des <VirtualHost>-Containers. _Innerhalb_ des Containers steht aber dann:
              CustomLog log/exbiku.com-accesslog common
            Und nun sag mir, wie das zusammenpassen und ein auswertbares log schreiben soll. Für "common" ist ja kein LogFormat definiert.

            Im übrigen bin ich nicht ganz sicher, ob deine pipe überhaupt funktionieren kann, das muß ich mir nochmal anschauen.

            Grüße aus Berlin

            Christoph S.

            1. Moin!

              CustomLog |/root/confixx/pipelog.pl confixx
              Das ist keine pipe, und es steht _außerhalb_ des <VirtualHost>-Containers.

              Was bitte soll dann das pipe-Zeichen? Da die pipelog.pl prinzipiell eine oder mehrere (oder unendlich) viele Eingaben erwarten kann ist das durchaus möglich.

              http://httpd.apache.org/docs/1.3/logs.html#piped
              http://httpd.apache.org/docs/2.0/logs.html#piped

              _Innerhalb_ des Containers steht aber dann:
                CustomLog log/exbiku.com-accesslog common
              Und nun sag mir, wie das zusammenpassen und ein auswertbares log schreiben soll. Für "common" ist ja kein LogFormat definiert.

              Fürwahr. Jetzt, wo Du das schreibst fällt mir das auch auf. Wir sollten um die komplette Konfiguation bitten.

              Im übrigen bin ich nicht ganz sicher, ob deine pipe überhaupt funktionieren kann, das muß ich mir nochmal anschauen.

              Ich mir auch nicht, ich habe sie ja nicht getestet :)
              Allerdings sollte ich das wohl noch in Quotas einschließen, weil der Apache sonst mit den Leerzeichen Probleme bekommt:
              CustomLog "|tee /var/log/apache2/extra_log/apache.log |/root/confixx/pipelog.pl" confixx

              Wenn das pipe prinzipiell funktioniert solte man auch ein tee einbauen können. Damit lässt sich die Ausgabe verzweigen: 1* in Datei, nötigenfalls noch eines auf eine Konsole und ein weiteres pipe auf das perl-skript... why not?

              MFFG (Mit freundlich- friedfertigem Grinsen)

              fastix®

              --
              Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
  4. Moin!

    Teste mal, ob Du als wwwrun in das Verzeichnis schreiben darfst:

    fastix@trainer:~> cd /var/log
    fastix@trainer:/var/log> su
    Password:
    root@trainer:/var/log # su wwwrun
    root@trainer:/var/log # cd apache2/
    root@trainer:/var/log/apache2 # echo "Hallo" > testfile
    root@trainer:/var/log/apache2 # cat testfile
    Hallo
    root@trainer:/var/log/apache2 #

    Du kannst natürlich auch direkt in das Logfile schreiben.

    Eines noch: Wenn Du mit logrotate arbeitest...

    Wie sehen denn die Dateirechte für das Verzeichnis und die umask aus?

    Die Rechte für die Dateien hast Du ja schon auf 666  gesetzt. (Das ist nach christlicher Mythologie und in Unix die Zahl des Teufels...777 die des jüngsten Gerichts oder des gekündigten Admins.)

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
    1. Hallo

      jetzt wirds lustig:

      Wenn ich als User wwwrun angemeldet bin und im Verzeichnis /srv/www/log bin (all diese Verzeichnisse gehören dem User wwwrun und der Gruppe www) und dort eine Datei "test" erstelle (die wwwrun) gehört und als Recht 777 hat, kann ich trotzdem mit vim nicht in diese Datei schreiben.

      Wenn ich echo "asdf" > test ausführe bekomme ich beim Lesen mit Vim nur eine leere Datei und die Meldung E297: Write error in swap file.

      Cat, less usw. bringen dann nur eine leere Datei!?

      Viele Grüße,
      Manfred

      Moin!

      Teste mal, ob Du als wwwrun in das Verzeichnis schreiben darfst:

      fastix@trainer:~> cd /var/log
      fastix@trainer:/var/log> su
      Password:
      root@trainer:/var/log # su wwwrun
      root@trainer:/var/log # cd apache2/
      root@trainer:/var/log/apache2 # echo "Hallo" > testfile
      root@trainer:/var/log/apache2 # cat testfile
      Hallo
      root@trainer:/var/log/apache2 #

      1. Tach,

        Wenn ich als User wwwrun angemeldet bin und im Verzeichnis /srv/www/log bin (all diese Verzeichnisse gehören dem User wwwrun und der Gruppe www) und dort eine Datei "test" erstelle (die wwwrun) gehört und als Recht 777 hat, kann ich trotzdem mit vim nicht in diese Datei schreiben.

        gibt es ACL auf diese Dateien (mit getfacl überprüfen)?

        mfg
        Woodfighter

        1. Hallo,

          getfacl test liefert mir folgendes zurück:

          file: test

          owner: wwwrun

          group: www

          user::rwx
          group::rwx
          other::rwx

          Viele Grüße,
          Manfred

          Tach,

          Wenn ich als User wwwrun angemeldet bin und im Verzeichnis /srv/www/log bin (all diese Verzeichnisse gehören dem User wwwrun und der Gruppe www) und dort eine Datei "test" erstelle (die wwwrun) gehört und als Recht 777 hat, kann ich trotzdem mit vim nicht in diese Datei schreiben.

          gibt es ACL auf diese Dateien (mit getfacl überprüfen)?

          mfg
          Woodfighter

          1. hallo Manfred,

            file: test

            owner: wwwrun

            group: www

            Die Gruppe www und der user wwwrun (mit der ID 30) werden von der SuSE eigens als "Webgruppe" bzw. "Webuser" angelegt. Wie sinnvoll das ist, mag eine anderweitig zu klärende Frage sein, andere Distributionen machen das nicht. Wenn du dir einen mail-Server und/oder einen FTP-Server einrichtest, stellt die SuSE auch da "default" alles für diese Gruppe und diesen Nutzer bereit. Zusätzlich gehört root in die Gruppe www.

            Der Apache startet grundsätzlich mit root-Rechten, Kindprozesse können aber andere Rechte erhalten, je nachdem, welcher Benutzer sie in Anspruch nimmt.

            user::rwx
            group::rwx
            other::rwx

            Das ist ziemlich "dick" und gar nicht unbedingt nötig für ein Verzeichnis, in dem es eh nur Protokolldateien gibt.

            Kleine Bitte noch: das "fullquoting" beim Antworten könntest du weglassen.

            Grüße aus Berlin

            Christoph S.

      2. Moin!

        Hallo

        jetzt wirds lustig:

        Wenn ich als User wwwrun angemeldet bin und im Verzeichnis /srv/www/log bin (all diese Verzeichnisse gehören dem User wwwrun und der Gruppe www) und dort eine Datei "test" erstelle (die wwwrun) gehört und als Recht 777 hat, kann ich trotzdem mit vim nicht in diese Datei schreiben.

        Wenn ich echo "asdf" > test ausführe bekomme ich beim Lesen mit Vim nur eine leere Datei und die Meldung E297: Write error in swap file.

        -> Mögliche Ursache: Verzeichnisrechte.

        vim kann keine "swap"-datei anlegen. Nimm ein beliebiges Verzeichniss, öffne eine Datei mit vim und schaue auf einer anderen Konsole mal mit ls -l nach... was das ist.

        Cat, less usw. bringen dann nur eine leere Datei!?

        Ok. Wie sehen denn die Verzeichnisrechte aus?

        Bei mir so:

        root@trainer:/var/log/apache2 # umask ls -al
        drwxr-x---    2 root     root          144 2005-08-24 14:53 .
        drwxr-xr-x   14 root     root         5112 2005-08-24 04:15 ..
        -rw-r--r--    1 root     root      1182205 2005-08-24 15:24 access_log
        -rw-r--r--    1 root     root       230601 2005-08-24 15:24 error_log
        -rw-r--r--    1 root     root           10 2005-08-20 04:15 rcapache2.out
        root@trainer:/var/log/apache2 # umask
        0022

        root@trainer:/var/log/apache2 #

        Sag mal... hast Du nicht etwa Disk-Quotas aktiviert und den wwwrun so augeknockt ?:)

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix®

        --
        Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
        1. Hallo an alle,

          ich mach erstmal Schluss für heute, vielleicht hilft ja ne Nacht drüber schlafen was =)

          Auf jeden Fall erstmal danke an alle für die schnellen Antworten.

          Viele Grüße,
          Manfred