Quotas auf /var/log?

From: Robert Barten <robert(at)barok.de>
Date: Wed, 15 Oct 2003 09:29:22 +0200

Moin,

gestern mein 2GB /var geplatzt, Kapazität laut df 116%. Der Grund war
eine Endlosschleife in einem PHP-Skript, und PHP hat daraufhin rekursive
Fehlermeldungen geschrieben, bei jedem Aufruf wuchs die Logdatei
/var/log/vhosts/anfangsbuchstabe/login/error.log
um 120 MB ... Logrotate kommt nur einmal am Tag vorbei, aber selbst wenn
öfter könnte es gar nicht so schnell packen.

Danach ging kaum noch etwas: Sendmail, /var/run/ndc, MySQL und natürlich
syslog waren hauptsächlich betroffen.

Ein Skript überprüft jetzt minütlich die Dateigrößen, mailt die letzten
40 Zeilen an den Inhaber und löscht die Datei dann. Das ist relativ
sicher bei einem Fehler, in einer Minute schafft PHP "nur" 240 MB. Wenn
aber mehrere gleichzeitig so eine Logvollschreibaktion starten?

Kann ich Apache veranlassen, nur Logs bis zu einer bestimmten Größe zu
produzieren? Quotas auf /var/log für root bringen ja nicht viel. In
Zukunft gibt es für die Logs eine eigene Scheibe, nur wie sähe eine
sichere Lösung _jetzt_ aus? Die Logs in /tmp/logs (2GB /dev/da1s2e)? Da
würde ein Überlauf nur PHP-Sessions betreffen - als Strafe für diese
kranken Fehlermeldungen sozusagen.

Der Code wurde mir überlassen, wer selbst ausprobieren will, ob sein
Server durch PHP halb lahm gelegt werden kann, möge ihn ausprobieren
bzw. sich auf den Ernstfall vorbereiten :)

Beste Grüße,
Robert

P.S. mod_php v4.3.3

-- 
CONCORDIA DOMI FORIS PAX
To Unsubscribe: send mail to majordomo.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 15 Oct 2003 - 09:30:02 CEST

search this site