Ein Speicherplatzkontingent für Basisverzeichnisse und relationale Datenbanken (MySQL, PostgreSQL) unter Linux

2

Relationale Datenbanken haben ihre Daten normalerweise in / var / lib / something. Benutzer befinden sich in / home (mit Daten in / var / www). Wie kann ich für alle diese unabhängigen Softwaresysteme (Dateisysteme, RDBMS usw.) ein einzelnes Gesamtkontingent für den Festplattenspeicher anwenden?

PS: Es wird gewettet, wie großartig SU ist. Mal sehen, was du hast.

Anonym
quelle

Antworten:

3

Sie können die Datenbankdateien jedes Benutzers in sein Ausgangsverzeichnis verschieben, damit sie für jedes dort überwachte Kontingent gezählt werden. Wenn /varund /homeoder auf demselben Dateisystem Sie dies mit Hardlinks tun können, müssen Sie msySQL nicht einmal anhalten, um die Dateien in die Home-Verzeichnisse zu verschieben und sie wieder mit `/ var / lib / whatever 'zu verknüpfen.

Für Inhalte, auf die über das Internet zugegriffen werden kann, neige ich dazu, die Websites der einzelnen Benutzer so zu konfigurieren, dass sie sich ohnehin in ihren Home-Verzeichnissen befinden (normalerweise in einem Verzeichnis mit dem Namen /home/<user>/public_html(mit einem Symlink zu dem, der von /home/<user>/wwwmanchen bevorzugt wird). Auf diese Weise befinden sich die Dateien am selben Ort wie die anderen von ihren Heimatverzeichnissen, so gibt es keinen zusätzlichen Ort zu zählen.

Abhängig davon, wie Kontingente gezählt werden, kann der Dateibesitz ein Problem sein. Wenn Sie zum Beispiel Ihren Webserver so ausführen, dass alles als ein Benutzer ausgeführt wird (die Benutzer nobodyund www-datadie gemeinsamen Benutzer ), werden alle Dateien, die mit Skripten erstellt wurden, nicht dem Benutzer gehören. Wenn dies verhindert, dass sie in ihrem Kontingent gezählt werden, werden Sie Ich vermisse ein paar Sachen in deinen Zählungen. Ich habe die Skripte jedes Benutzers als sich selbst ausgeführt (über suPHP oder phpSUexc für PHP), sodass die Dinge korrekt verwaltet werden. Dies ist kein Problem für im Web zugängliche Skripte und alle Ausgaben, die sie im Dateisystem erstellen.

David Spillett
quelle