%3F%20.png)
Hoffe, die Frage ist nicht zu allgemein.
Da ich einen virtuellen Server (Ubuntu 12.04) habe, kann ich die Größe von Verzeichnissen nicht durch Kontingente beschränken. Ich frage mich, ob es andere Möglichkeiten gibt, dies zu erreichen.
Die einzige Methode, die ich mir vorstellen könnte, wäre eine Kombination aus inotify + Konfigurationsdatei, in der die maximale Größe angegeben ist + Befehl, der die Datei leert oder entfernt oder so etwas. Es geht nicht darum, Benutzerverzeichnisse einzuschränken, sondern automatisch geschriebene Dateien wie Protokolldateien.
Ich weiß, dass das nicht der beste Weg ist, aber der einzige, von dem ich denke, dass er funktionieren würde. Kennt ihr bessere?
Antwort1
Dies lässt sich bei vielen Kontingenten nicht wirklich gut skalieren, eine einfache Lösung wäre jedoch, einfach ein anderes Dateisystem mit der gewünschten festen Größe zu erstellen.
Wenn Sie keinen freien Blockspeicher haben, können Sie ein Loopback-Gerät verwenden, das auf eine Sparse-Datei zeigt. Die Sparse-Datei verbraucht keinen Speicherplatz, bis sie verwendet wird. Wenn Sie jedoch ein Dateisystem über dieser Sparse-Datei erstellen, scheint es, als ob eine feste maximale Speichermenge verfügbar wäre. Das Vergrößern/Verkleinern wird jedoch etwas schwierig sein. Die sicherste Methode besteht darin, eine neue Sparse-Datei + ein Dateisystem zu erstellen, das größer/kleiner ist, und dann den Inhalt der alten Datei zu übertragen.
Antwort2
Wenn das Problem speziell bei Protokolldateien liegt, verwenden Sie einen Syslog-Daemon, der die Angabe der maximalen Dateigröße unterstützt. Ich glaube, rsyslogd macht das. Wenn das nicht möglich ist, gibt es eine Reihe von Logrotate-Programmen, die Protokolle rotieren können, wenn sie die maximale Dateigröße erreichen, und nur eine bestimmte Anzahl von Protokollen behalten, sodass die Gesamtgröße in Grenzen gehalten wird.