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.