Wir haben einen internen Webserver (virtualisiert, Hosting von ReviewBoard, aber nicht überaus relevant) und einen relativ konsistenten Fehlermodus, bei dem fehlgeschlagene NFS-Bereitstellungen zu einer Auffüllung führen. Die Distribution ist Ubuntu (fragen Sie nicht). Wenn eine Lösung von einer anderen Distribution abhängt, ist die Implementierung langsamer.
Sicherungen werden in / mnt / backup / ausgeführt, das auf einem NFS-Mount auf einem anderen System ausgeführt werden soll. Wenn die Bereitstellung fehlschlägt oder abbricht, werden leider Sicherungen auf dem Root-Dateisystem durchgeführt. Wie Sie sich vorstellen können, dauert es nicht lange, bis / voll ist, und dann beginnen die Dienste, fehlzuschlagen.
Eine Reihe möglicher Lösungen wurde diskutiert.
Überwachen Sie / mnt / backups und stellen Sie sicher, dass es nicht root ist. Vielleicht ein Cronjob.
Verwenden Sie / mnt / protected / backups und hängen Sie / protected zuerst in ein kleines Dateisystem ein, möglicherweise in eine lokale Datei, damit die Wahrscheinlichkeit, dass es fehlschlägt, sehr viel geringer ist.
Chmod a-rwx / mnt / backups (der Einhängepunkt des Root-Dateisystems). Ich bin mir nicht sicher, ob das Mounten über einen geschützten Director funktioniert.
Erstellen Sie im gemounteten Baum ein Verzeichnis mit dem Namen "Backups" und anschließend einen Softlink "ln - s / mnt / backup / Backups / Backups". Die Verwendung von / Backups für Backups schlägt fehl, wenn / mnt / backup nicht bereitgestellt wird, da der lokale Baum das Unterverzeichnis nicht enthält.
Durchführen einer Überprüfung, ob das Verzeichnis im Sicherungsskript korrekt eingebunden ist.
Ich bin an jeglichem Feedback zu diesen Ansätzen, Vor- und Nachteilen oder zusätzlichen Techniken interessiert, die Menschen als Standardmethode zum Schutz des Root-Dateisystems vor dieser Art von Gemeinheit verwenden.
Die fehlersicherste Lösung besteht darin, den Einhängepunkt nicht beschreibbar zu machen. Dies wäre Ihre Lösung Nr. 3. Es gibt jedoch einen zusätzlichen Schritt, den Sie ausführen sollten.
chattr +i /mnt/backups
. Dies liegt daran, dass root auch ohne Berechtigungen weiterhin in das Verzeichnis schreiben kann. Mitchattr +i
(setzt unveränderliches Flag) kann nicht einmal root darauf schreiben. Sobald der Mount gemountet ist, spielen die Berechtigungen keine Rolle mehr, da sie sich auf das Remote-Verzeichnis und nicht auf das lokale Verzeichnis beziehen.quelle
encfs
einem Fuse-Dateisystem versucht . Es gibt Fehler:fusermount: user has no write access to mountpoint
Was ewwhite gesagt hat. Außerdem wäre eine zusätzliche Überwachung des Zustands des Basissystems keine schlechte Idee.
So etwas wie Monit kann prüfen, wie viel Speicherplatz noch frei ist . Wenn Sie sich eingehend mit der Systemüberwachung befassen möchten, können Sie sich Nagios ansehen, aber Monit ist ein Leichtgewicht und wird die Grundlagen schaffen.
Da Sie Ubuntu verwenden, befindet sich Monit bereits in Repo. Sie können also "sudo apt-get install monit" ausführen und dann in den Konfigurationsdateien nachsehen, um Warnungen an den richtigen Ort zu senden, die richtigen Dienste zu überwachen usw Hier ist ein kurzes Tutorial .
quelle
Hier ist ein Einzeiler, den Sie als Cron-Job ausführen können. Dabei wird davon ausgegangen, dass sich der betreffende Mount in fstab befindet:
quelle
Für eine längerfristige Lösung: Sie sind sich nicht sicher, wie Sie dies unter Ubuntu tun sollen (ich bin RH-zentriert) oder ob es sich lohnt (wenn Sie nur eine Maschine haben), aber eine Methode, die sich seit vielen Jahren für uns bewährt hat, besteht darin, eine separate Logik zu erstellen Volumes, Dateisysteme und sogar Volume-Gruppen auf Servermaschinen. Standardmäßig erstellen wir logische LVM-Volumes für /, / tmp. / usr, / usr / local, / opt, / home, / var, Swap Space und eine separate Partition für / boot. Dieser Ansatz erschwert es Dateisystemen besonders, das System zu füllen und zu deaktivieren. Tatsächlich macht es dieser Ansatz fast unmöglich, das Dateisystem / zu füllen. Natürlich müssen Sie immer noch / tmp, / var beobachten. Wenn wir Daten speichern müssen, erstellen wir dafür eine völlig andere Volumengruppe. Dieser Ansatz hat auch andere Vorteile: Dateisysteme nach Belieben erweitern, verschieben, neue erstellen usw.
quelle