Samstag, 24. September 2011

Wie kann ich den freien Speicherplatz auf dem Server kontrollieren?

 Jeder sollte irgendwo in seinem Adminbereich eine Speicherplatzabfrage einbauen. Entweder als eigenes Skript, oder besser eingebunden in ein Administrationsskript, das ständig benutzt wird. Denn ein voller Speicherplatz sorgt für mysteriöse Probleme bei anderen Programmen, ohne dass man auf die Idee kommt, das könnte an einem vollen speicher liegen. Ein Wordpress-Update geht dann plötzlich nicht mehr, denn die Platte ist faktisch nicht mehr beschreibbar. Aber nicht mangels Rechten, sondern wegen "Überfüllung".

Wenn Ihr nun sagt, da bin ich noch weit entfernt davon ... na ja, es reicht, wenn man Speicherplatz für Dritte zur Verfügung gestellt hat, also auf seinem Server die Webprojekte anderer hostet, z.B. von einem Verein, den man betreut. Dann passiert schnell mal folgendes: Mitglieder laden Bilder oder Dateien hoch, die mehrere MB umfassen. Meist werden die nie wieder gelöscht, auch wenn sie nicht mehr eingebunden sind, denn weder Wordpress noch CK-Editor haben hier vernünftige Mechanismen. Und viele Leute wissen nicht, dass man ein Digicam-Foto erst mal runterrechnen muss, bevor man es weiter verwendet. In einem Fall hat ein von mir betreuter Musik-Verein mp3-Dateien in den Mitglieder-Dowloadbereich hochgeladen, die enorm groß waren. Dazu noch ein paar überdimensionierte PDF-Dateien und, im Laufe der Zeit war der Server voll. Dasselbe passiert mit ein paar Videos, die man in den Downloadbereich hochlädt - pro Video 1,5 GB und plötzlich ist der Server voll. Und das Gemeine ist, wie gesagt, dass man die anschließenden Probleme nicht damit in Verbindung bringt. es gibt keine Fehlermeldung "Platte voll", sondern allenfalls Meldungen über Schreibfehler.

Wie fragt man nun den freie Speicherplatz  ab? Mit diskfreespace.

<?php
$path = "speicherplatz.php"; // der Name dieses Skripts
$var = diskfreespace("$path");
echo "Freier Speicher: " . $var . " Bytes";
?>

Dieses Skript abspeichern und in ein Admin-Skript einbinden. Dann wird immer der Speicherplatz angezeigt.

Natürlich kann man jetzt noch zusätzlichen Code einbauen. Zum Beispiel ein rot eingefärbter Hinweis für den Fall, dass ein bestimmter Wert unterschritten wird. Oder eine email-Meldung. Im letzteren Fall ist eine Einbindung in eine vom User aufgerufene Seite (ohne echo-Befehl) sinnvoll, oder ein Cronjob-Aufruf.

Keine Kommentare: