Was kann schief gehen, wenn sich / var / tmp in einem temporären Dateisystem befindet?

8

Ich habe gelesen, dass ich / var / tmp nicht als temporäres Dateisystem (z. B. als tmpfs) bereitstellen sollte, da Dateien in / var / tmp beim Neustart nicht gelöscht werden dürfen. Ist das korrekt?

Angenommen, ich habe / var / tmp als tmpfs gemountet, sodass der Inhalt bei jedem Neustart gelöscht wird. Wäre das schlecht? Wenn ja, was könnte schief gehen? Wie schlimm wäre es?

DW
quelle
@JMoore, ich frage nach /var/tmp, nicht nach /tmp. Ich entschuldige mich, wenn dies unklar war.
DW

Antworten:

11

Es /var/tmpwird erwartet, dass Dateien in Neustarts dauerhaft sind. Von der FHS :

Das Verzeichnis / var / tmp wird für Programme zur Verfügung gestellt, für die temporäre Dateien oder Verzeichnisse erforderlich sind, die zwischen Systemneustarts erhalten bleiben. Daher sind in / var / tmp gespeicherte Daten beständiger als Daten in / tmp.

Dateien in /var/tmpsind häufig Cache-Dateien oder temporäre Dateien, die bei einem plötzlichen Stromausfall nicht verschwinden sollten. Es ist jedoch nicht zu erwarten, dass sie für immer leben. Es ist üblich, alte Dateien löschen aus /var/tmpauf einem Zeitplan.

Hier sind einige Beispiele für /var/tmpdie Verwendung:

  • Einige Implementierungen von vi (z. B. nvi) legen ihre Absturzwiederherstellungsdateien ab /var/tmp. Wenn es sich um ein temporäres Dateisystem handelt, haben Sie keine Chance, etwas wiederherzustellen. Vim legt seine Absturzwiederherstellungsdateien im selben Verzeichnis ab wie die zu bearbeitende Datei.
  • Ich verwende ein Firefox-Plugin , mit dem ich Textfelder in Vim bearbeiten kann. Um dies zu erreichen, erstellt das Plugin eine temporäre Datei in /var/tmp( /tmpist jedoch die Standardeinstellung) und übergibt die Datei an Vim. Wenn mein Computer während der Verwendung dieser Funktion die Stromversorgung verliert, ist mein Schreiben sicher und einwandfrei /var/tmp.
  • Textbearbeitungswerkzeuge wie exund sudoeditfügen temporäre Dateien ein /var/tmp. Wenn /var/tmpes als tmpfs bereitgestellt wird, besteht die Gefahr, dass Daten durch unerwartete Stromausfälle verloren gehen.
  • Die git-archive(1)Manpage enthält das folgende Beispiel.

    Git-Archiv --format = tar --prefix = Junk / HEAD | (cd / var / tmp / && tar xf -)
    Erstellen Sie ein tar-Archiv, das den Inhalt des letzten Commits für
    den aktuellen Zweig enthält, und extrahieren Sie ihn in das Verzeichnis / var / tmp / junk.

    Es ist möglich, dass das /var/tmpVerzeichnis so ausgewählt wurde, dass der extrahierte Archivinhalt nicht durch einen plötzlichen Stromausfall verloren geht.

  • Da /var/tmpes regelmäßig, aber nie unerwartet gelöscht wird, ist es üblich, temporäre Protokolle und Testdatenbanken dort zu speichern. Beispielsweise wird in der arpd Manpage anhand /var/tmpeiniger Beispiele der Speicherort einer Testdatenbank verwendet.

    arpd -b /var/tmp/arpd.db
    Starten Sie arpd, um unentgeltliches ARP zu sammeln, ohne jedoch die Kernelfunktionalität zu beeinträchtigen.

Zusammenfassend ist es unwahrscheinlich, dass Ihr System ernsthafte Schäden erleidet, wenn Sie /var/tmpals tmpfs bereitstellen. Dies kann jedoch unerwünscht sein, da Sie Gefahr laufen, Informationen durch Stromausfälle und Neustarts zu verlieren.

Gilles 'SO - hör auf böse zu sein'
quelle
Danke. Ich habe die FHS-Spezifikation gelesen und verstehe, dass Anwendungen im Prinzip / var / tmp zum Speichern von Inhalten verwenden könnten. Ich war neugieriger auf bestimmte Beispiele, wie problematisch dies in der Praxis sein könnte.
DW
@ DW: Ich werde weitere Beispiele liefern.
2
@DW Auch /var/tmpist wahrscheinlich größer als /tmp, daher erwarten einige Anwendungen, dass dort große temporäre Dateien abgelegt werden. Wenn /var/tmptmpfs aktiviert ist, verfügt Ihr System möglicherweise nicht über genügend Arbeitsspeicher oder beginnt mit dem Thrashing.
Gilles 'SO - hör auf böse zu sein'