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 de "meilleure" pratique ou "commune". Le norme de hiérarchie du système de fichiers ne spécifie pas d'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 laisser à leur usage?
Cette question semble avoir une réponse claire dans le norme de hiérarchie du système de fichiers , qui spécifie /srv
comme "contient [ ing] des données spécifiques au site qui sont desservies 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 pour un service donné , de sorte que les services nécessitant une seule arborescence pour les données en lecture seule, les données en écriture et les scripts
(mon emphase)
Remarque: "Servi par le système" ne fait pas nécessairement référence à Internet. Cela ne signifie même pas nécessairement un réseau. Cela s'applique même à un système partagé. De plus, les mots site et service doivent être compris dans leur signification antérieure à Internet. Votre site peut être "le département de physique" ou "le bureau des finances".
Il se poursuit:
Sur les grands systèmes, il peut être utile de structurer/srv en fonction du contexte administratif, tel que/srv/physics/www,/srv/compsci/cvs, etc. Cette configuration diffère d’un hôte à l’autre. Par conséquent, aucun programme ne doit s'appuyer sur une structure de sous-répertoire spécifique de/srv existant ou sur des données nécessairement stockées dans/srv. Toutefois,/srv doit toujours exister sur les systèmes conformes à 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
et ainsi de suite.
Je devrais aussi mentionner que peu de gens le font plus. Mais il n'y a pas de bonne raison pour qu'ils ne le fassent pas. La norme n'est en aucun cas obsolète.
/var
est traditionnellement utilisé pour des tâches telles que les spools d'impression et les fichiers journaux, mais il est également utilisé par le serveur Web Apache (de toute façon sur les systèmes Debian - SUSE utilise/srv); Il ne semble pas y avoir de consensus sur le fait de 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 ne regretterez pas, j'en suis sûr.
Remarquez également: la réponse de Karthick n’est en aucun cas fausse. La FHS indique que/srv "devrait être utilisé comme emplacement par défaut pour ces données", mais la norme laisse une marge à votre préférence, en fonction de la manière dont vous interprétez les termes.
Hiérarchie du système de fichiers:
Je ne pense pas que FHS définisse un lieu pour les données utilisateur partagées. C'est aux utilisateurs où ils veulent stocker leurs données partagées. J'utilise habituellement /usr/local/shared
ou /home/shared
.
J'ai déjà vu /export
utilisé avec nfs et /mnt
utilisé pour monter un partage nfs localement, dans un environnement d'entreprise, comme suggéré dans la documentation NFS, une norme qui, à mon avis, provenait de Sun OS, plus tard renommée Solaris.
Le fichier /etc/exports
nomme les volumes exportés et le répertoire /exports
les fournit aux utilisateurs distants, qui les montent sur /mnt
. L'hôte du serveur peut également monter ces mêmes partages sur /mnt
en utilisant le même démon nfs pour l'utilisation de clients ou de processus s'exécutant localement sur le serveur, afin de conserver la compatibilité avec tous les hôtes distants et éventuellement de conserver les fonctionnalités de nivellement de la charge, de quotas, etc.
C'est aussi proche d'une "norme" que cela devient. Notez que /export
ne figure pas dans la FHS, par conséquent, /export
a été ajouté indépendamment. Par conséquent, personne n'est probablement satisfait de /srv
. Probablement à cause d'une confusion potentielle avec les "services" fonctionnant comme des démons plutôt que des volumes "servis". /export
porte un nom non équivoque avec peu de risque de confusion. Je ne vois jamais rien dans /srv
.