Où dans le système de fichiers dois-je stocker les données partagées?

44

Où dans le système de fichiers unix se trouve l’emplacement classique pour enregistrer des données non spécifiques à un utilisateur, par exemple des données partagées via nfs ou ftp, ou des sauvegardes?

Je pourrais évidemment créer et utiliser n'importe quel dossier arbitraire (tel que / home / shared, / data ou / var / data), mais je me demande vraiment s'il existe des directives pratiques "meilleures" ou "communes". Le standard de hiérarchie du système de fichiers ne spécifie aucun emplacement pour les données partagées.

Pour les sauvegardes, j'ai tendance à utiliser / var / backups, mais comme plusieurs cronjobs y écrivent, faut-il vraiment les utiliser?

    
posée misterben 07.12.2010 - 11:23
la source

4 réponses

29

Cette question semble avoir une réponse claire dans la norme de hiérarchie du système de fichiers , qui spécifie /srv comme "contenant [les] données spécifiques au site fournies par ce système ". (3.16.1)

  

Le but principal de cette spécification est que les utilisateurs puissent trouver l’emplacement des fichiers de données   service , et que les services nécessitant un seul arbre pour les données en lecture seule, les données inscriptibles et les scripts

(mon accent)

Remarque: «Served by the system» ne fait pas nécessairement référence à Internet. Cela ne signifie même pas un réseau. Cela s'applique même à un système partagé. De plus, les mots site et service doivent être compris dans leurs significations pré-internet. Votre site peut être "le département de physique" ou "le bureau des finances".

Il continue en disant:

  

Sur les grands systèmes, il peut être utile de structurer / srv par contexte administratif, tel que   / srv / physics / www, / srv / compsci / cvs, etc. Cette configuration diffère d'un hôte à l'autre. Donc pas de programme   devrait s'appuyer sur une structure de sous-répertoire spécifique de / srv existante ou des données nécessairement stockées dans / srv.   Cependant, / srv doit toujours exister sur les systèmes compatibles FHS et doit être utilisé comme emplacement par défaut pour   ces données.

Vous devez donc structurer davantage vos données dans des répertoires tels que /srv/nfs , /srv/backup , etc.

Je devrais également mentionner que peu de gens le font plus. Mais il n'y a pas de bonne raison pour laquelle ils ne le font pas. La norme n'est nullement dépassée.

/var est traditionnellement utilisé pour des choses comme les fichiers d'impression et les fichiers journaux, mais il est également utilisé par le serveur Web Apache (sur les systèmes Debian de toute façon - SUSE utilise / srv); Il ne semble pas y avoir de consensus pour savoir si /var est un répertoire approprié pour les données partagées. Mais si vous décidez de l'utiliser à la place, vous n'aurez aucun regret, j'en suis sûr.

Notez également que la réponse de Karthick n’est pas erronée. Le FHS indique / srv "doit être utilisé comme emplacement par défaut pour ces données ", mais la norme laisse une certaine place à votre propre préférence, en fonction de la façon dont vous interprétez les termes.

    
réponse donnée Stefano Palazzo 07.12.2010 - 13:55
la source
12
  • Les données non spécifiques à un utilisateur peuvent être stockées dans / usr / local / var afin qu’elles ne se retrouvent pas sur un nouveau partage.
  • Tout ce qui n'est pas sous ../local/ .. est autorisé à se retrouver sur un partage NFS, donc si vous voulez télécharger des données depuis un partage NFS, et assurez-vous qu'ils sont stockés localement sur le disque dur de la machine.
  • Vous devriez alors choisir un chemin avec ... / local / .. dedans .... le reste dépend de la nature des données, du type de celui-ci. Il pourrait être / local / var ou / local / tmp etc.

Hiérarchie du système de fichiers:

Consultez également ceci

    
réponse donnée karthick87 07.12.2010 - 12:07
la source
5

Je ne pense pas que FHS définisse un lieu pour les données utilisateur partagées. Ce sont les utilisateurs qui souhaitent stocker les données partagées. J'utilise habituellement /usr/local/shared ou /home/shared .

    
réponse donnée binW 07.12.2010 - 12:35
la source
1

J'ai vu que /export servait avec nfs et que /mnt utilisait localement un partage nfs, dans un environnement d'entreprise, comme le suggère la documentation NFS, un standard que je pense originaire de Sun OS, rebaptisé plus tard Solaris.

Le fichier /etc/exports nomme les volumes exportés et le répertoire /exports les met à la disposition des utilisateurs distants, qui les montent sur /mnt . L’hôte du serveur peut également monter ces mêmes partages sur /mnt à l’aide du même démon nfs pour l’utilisation de tous les clients ou processus exécutés localement sur le serveur, afin de conserver la compatibilité avec les hôtes distants, etc.

C'est aussi proche d'une «norme» que possible. Notez que /export n'est pas dans le FHS donc /export a été ajouté indépendamment, donc probablement personne n'est satisfait de /srv . Probablement à cause de la confusion potentielle avec les «services» fonctionnant comme des démons plutôt que comme des volumes «servis». /export est nommé sans ambiguïté avec peu de chance de confusion. Je ne vois jamais rien dans /srv .

    
réponse donnée cheryljosie 20.12.2012 - 04:27
la source

Lire d'autres questions sur les étiquettes