Dove nel file system devo archiviare i dati condivisi?


44

In quale posizione del filesystem unix si trova la posizione convenzionale per salvare dati non specifici dell'utente, ad esempio dati condivisi tramite nfs o ftp o backup?

Potrei ovviamente creare e utilizzare qualsiasi cartella arbitraria (come / home / shared, / data o / var / data), ma mi sto davvero chiedendo se ci siano delle linee guida di pratica "migliori" o "comuni". Il file system Hierarchy Standard non specifica un percorso per i dati condivisi.

Per i backup, tendo ad usare / var / backups, ma come molti cronjob ci scrivono dovrebbe davvero essere lasciato per il loro uso?

Risposte:


29

Questa domanda non sembra avere una risposta chiara nel Filesystem Hierarchy Standard , che specifica /srvcome "contenere dati specifici del sito [ing] che è servito da questo sistema" . (3.16.1)

Lo scopo principale di specificare ciò è che gli utenti possano trovare la posizione dei file di dati per un determinato servizio e che i servizi che richiedono un singolo albero per dati di sola lettura, dati scrivibili e script

(la mia enfasi)

Nota: "Servito dal sistema" non si riferisce necessariamente a Internet. Non deve nemmeno significare una rete. È applicabile anche a un sistema condiviso. Inoltre, le parole sito e servizio dovrebbero essere comprese nei loro significati pre-internet. Il tuo sito può essere "il dipartimento di fisica" o "l'ufficio delle finanze".

Continua dicendo:

Sui sistemi di grandi dimensioni può essere utile strutturare / srv in base al contesto amministrativo, come / srv / physics / www, / srv / compsci / cvs, ecc. Questa configurazione differirà da host a host. Pertanto, nessun programma dovrebbe fare affidamento su una specifica struttura di sottodirectory di / srv esistente o i dati devono essere necessariamente archiviati in / srv. Tuttavia / srv dovrebbe sempre esistere su sistemi conformi a FHS e dovrebbe essere usato come posizione predefinita per tali dati.

Dovresti quindi strutturare ulteriormente i tuoi dati in directory come /srv/nfs, /srv/backupe così via.

Vorrei anche ricordare che poche persone lo fanno più. Ma non c'è una buona ragione per cui non lo fanno. Lo standard non è affatto obsoleto.

/varè tradizionalmente usato per cose come spool di stampa e file di log, ma è anche usato dal web server Apache (comunque sui sistemi Debian - SUSE use / srv); Non sembra esserci consenso sul fatto che /varsia una directory corretta per i dati condivisi. Ma se invece decidi di usarlo, non avrai rimpianti, ne sono sicuro.

Nota anche: la risposta di Karthick non è affatto sbagliata. L'FHS dice / srv "dovrebbe essere usato come posizione predefinita per tali dati", ma lo standard lascia spazio alle proprie preferenze, a seconda di come interpretate i termini.


4
Nota che Debian (e Red Hat) hanno iniziato a inserire i file di Apache /var/www, prima che /srv/facesse parte dell'FHS.
Mattdm,

Una buona spiegazione, grazie, anche se sembra che la risposta alla domanda sia "non esiste uno standard realmente seguito". Forse dovrebbe esserci, forse non importa.
misterben,

Bene, dovresti sempre infrangere le regole quando hai buone ragioni per farlo. Ma io stima che questo standard sia seguito meticolosamente in molte distribuzioni su larga scala.
Stefano Palazzo

Le persone che vorrebbero passare a uno standard comune, dovrebbero trovare questa risposta inequivocabilmente corretta in base a FHS.
Jeremy,

13
  • I dati non specifici dell'utente possono essere memorizzati in / usr / local / var in modo che non finiscano nuovamente su una condivisione newtwork.
  • Tutto ciò che non è in ../local/ .. può finire su una condivisione nfs, quindi se si desidera scaricare dati da una condivisione nfs ed assicurarsi che siano archiviati localmente sul disco rigido del computer.
  • Quindi dovresti scegliere un percorso con ... / local / .. al suo interno .... il resto dipende dalla natura dei dati, dal tipo di esso. Potrebbe essere / local / var o / local / tmp ecc .

Gerarchia del file system:
testo alternativo

Dai anche un'occhiata a questo


1
Sebbene questa sia una rappresentazione utile dell'FHS, non suggerisce ancora una posizione standard per un archivio dati condiviso.
misterben,

FSH afferma che: / usr è dati condivisibili, di sola lettura. Ciò significa che / usr deve essere condivisibile tra vari host conformi a FHS e non deve essere scritto . Hmmm, quindi sembra dipendere da quale sia lo scopo della tua condivisione.
Htorque,

@Htorque Sono propenso a pensare che da qualche parte sotto / var sia più appropriato per una condivisione di file, come hai suggerito nella tua risposta (ora eliminata).
misterben,

1
Ho cancellato la mia risposta, perché anche FHS afferma che: Le applicazioni generalmente non devono aggiungere directory al livello superiore di / var. Tali directory dovrebbero essere aggiunte solo se hanno implicazioni a livello di sistema e in consultazione con la mailing list di FHS. - l'FHS semplicemente non vuole che tu condivida dati (scrivibili)! : P
htorque,

Grazie, una panoramica utile e come l'altra risposta serve davvero a documentare che non esiste una risposta definitiva, che è utile in sé.
misterben,

5

Non credo che FHS definisca qualsiasi luogo per i dati utente condivisi. Spetta agli utenti dove desiderano archiviare i dati condivisi. Di solito uso /usr/local/sharedo /home/shared.


1

Ho visto /exportusato per servire con nfs e /mntusato per montare una condivisione nfs localmente, in un ambiente aziendale, come suggerito nella documentazione NFS, uno standard che sospetto originariamente proveniva da Sun OS, in seguito ribattezzato Solaris.

Il /etc/exportsfile nomina i volumi esportati e la /exportsdirectory li serve agli utenti remoti, che li montano /mnt. L'host del server può anche montare queste stesse condivisioni /mntusando lo stesso demone nfs per l'uso di client o processi in esecuzione localmente sul server, per mantenere la compatibilità con qualsiasi host remoto e forse mantenere la funzionalità di livellamento del carico, quote, ecc.

Questo è il più vicino possibile ad uno "standard". Si noti che /exportnon è presente nell'FHS, quindi è /exportstato aggiunto in modo indipendente, quindi presumibilmente nessuno è soddisfatto /srv. Probabilmente a causa della potenziale confusione con i "servizi" in esecuzione come demoni piuttosto che volumi "serviti". /exportè chiamato in modo inequivocabile con poche possibilità di confusione. Non vedo mai niente dentro /srv.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.