it-swarm.com.de

Wo im Dateisystem soll ich freigegebene Daten speichern?

Wo im Unix-Dateisystem befindet sich der herkömmliche Speicherort für nicht benutzerspezifische Daten, z. B. Daten, die über NFS oder FTP gemeinsam genutzt werden, oder für Sicherungen?

Ich könnte natürlich jeden beliebigen Ordner erstellen und verwenden (z. B./home/shared/data oder/var/data), aber ich frage mich wirklich, ob es "beste" oder "allgemeine" Übungsrichtlinien gibt. Der Filesystem Hierarchy Standard gibt keinen Speicherort für gemeinsam genutzte Daten an.

Für Backups verwende ich in der Regel/var/backups, aber wenn mehrere Cronjobs darauf schreiben, sollte es wirklich für ihre Verwendung übrig bleiben?

45
misterben

Diese Fragehateine klare Antwort im Dateisystem-Hierarchie-Standard , der /srv als "angibt. ortsspezifische Daten enthalten, die von diesem System bereitgestellt werden ". (3.16.1)

Der Hauptzweck dieser Angabe besteht darin, dass Benutzer den Speicherort der Datendateien für einen bestimmten Dienst finden und dass Dienste, die einen einzigen Baum für schreibgeschützte Daten, beschreibbare Daten und Skripte benötigen

(meine Betonung)

Hinweis: "Vom System bereitgestellt" bezieht sich nicht unbedingt auf das Internet. Es muss nicht einmal ein Netzwerk bedeuten. Es ist sogar auf ein gemeinsames System anwendbar. Ferner sollten die Wörtersiteundservicein ihrer Bedeutung vor dem Internet verstanden werden. Ihr Standort kann "die Physikabteilung" oder "das Finanzamt" sein.

Es heißt weiter:

Auf großen Systemen kann es nützlich sein,/srv nach Verwaltungskontext zu strukturieren, z. B./srv/physics/www,/srv/compsci/cvs usw. Diese Konfiguration unterscheidet sich von Host zu Host. Daher sollte kein Programm auf eine bestimmte Unterverzeichnisstruktur von/srv angewiesen sein oder Daten, die unbedingt in/srv gespeichert werden müssen./Srv sollte jedoch auf FHS-kompatiblen Systemen immer vorhanden sein und als Standardspeicherort für solche Daten verwendet werden.

Sie sollten daher Ihre Daten in Verzeichnissen wie /srv/nfs, /srv/backup usw. weiter strukturieren.

Ich sollte auch erwähnen, dass dies nur noch wenige Leute tun. Aber es gibt keinen guten Grund, warum sie es nicht tun. Der Standard ist keineswegs veraltet.

/var wird traditionell für Dinge wie Druckspools und Protokolldateien verwendet, aber es wird auch vom Apache-Webserver verwendet (auf Debian-Systemen sowieso - SUSE use/srv); Es scheint kein Konsens darüber zu bestehen, ob /var ein geeignetes Verzeichnis für freigegebene Daten ist. Aber wenn Sie sich dafür entscheiden, es stattdessen zu verwenden, werden Sie es nicht bereuen, da bin ich mir sicher.

Beachten Sie auch: Karthicks Antwort ist keineswegs falsch. Das FHS sagt/srv "sollte als Standardspeicherort für solche Daten verwendet werden", aber der Standard lässt etwas Raum für Ihre eigenen Vorlieben, abhängig davon, wie Sie die Begriffe interpretieren.

30
Stefano Palazzo
  • Nicht benutzerspezifische Daten können in /usr/local/var gespeichert werden, damit sie nicht erneut auf einer Newtwork-Freigabe landen.
  • Alles, was sich nicht unter ../local/ .. befindet, kann auf einer nfs-Freigabe landen. Wenn Sie also Daten von einer nfs-Freigabe herunterladen möchten, müssen Sie sicherstellen, dass sie lokal auf der Festplatte des Computers gespeichert sind.
  • Dann sollten Sie einen Pfad mit .../local/.. darin auswählen. Der Rest hängt von der Art der Daten und deren Typ ab. Dies kann/local/var oder/local/tmp usw. Sein .

Dateisystemhierarchie:
alt text

Siehe auch

13
karthick87

Ich glaube nicht, dass FHS irgendeinen Ort für geteilte Benutzerdaten definiert. Es liegt an den Benutzern, wo sie dort gemeinsam genutzte Daten speichern möchten. Normalerweise benutze ich /usr/local/shared oder /home/shared.

5
binW

Ich habe gesehen, dass /export zur Bereitstellung mit nfs und /mnt zur lokalen Bereitstellung einer nfs-Freigabe in einer Unternehmensumgebung verwendet wurde, wie in der NFS-Dokumentation vorgeschlagen, einem Standard, von dem ich vermute, dass er ursprünglich von Sun OS stammt , später in Solaris umbenannt.

Die Datei /etc/exports benennt die exportierten Volumes und das Verzeichnis /exports dient den Remotebenutzern, die sie auf /mnt mounten. Der Server-Host kann diese Freigaben auch unter Verwendung desselben nfs-Daemons auf /mnt für die Verwendung von Clients oder Prozessen bereitstellen, die lokal auf dem Server ausgeführt werden, um die Kompatibilität mit allen Remote-Hosts zu gewährleisten und möglicherweise die Funktionalität des Load Leveling beizubehalten. Quoten usw.

Das kommt einem "Standard" so nahe, wie es nur geht. Beachten Sie, dass /export nicht in der FHS enthalten ist, daher /export unabhängig hinzugefügt wurde, sodass vermutlich niemand mit /srv zufrieden ist. Wahrscheinlich wegen möglicher Verwechslung mit "Diensten", die als Daemons ausgeführt werden und nicht als "bediente" Datenträger. /export ist eindeutig benannt und es besteht wenig Verwechslungsgefahr. Ich sehe nie etwas in /srv.

1
cheryljosie