1.18. /var

Contiene dati variabili come file per la registrazione delle attività del sistema, directory di spool per la posta e la stampante, file transitori e temporanei. Alcune parti di /var non sono condivisibili fra sistemi differenti. Per esempio, /var/log, /var/lock e /var/run. Altre parti possono essere condivise, in modo particolare /var/mail, /var/cache/man, /var/cache/fonts e /var/spool/news. Perché non metterle in /usr? Perché ci possono essere casi in cui /usr viene montata in sola lettura, per esempio se si trova su un CD di un altro computer; "/var" contiene dati variabili, cioè file e directory su cui il sistema deve poter scrivere quando è in attività, mentre /usr dovrebbe contenere solo dati statici. Acune directory possono essere messe su partizioni o sistemi separati, per esempio per facilitare i backup, per questioni di sicurezza o di topologia di rete. Le altre directory devono stare sulla partizione di root, perché sono essenziali per il processo di avvio. Le directory "montabili" sono: "/home", "/mnt", "/tmp", "/usr" e "/var". Quelle essenziali per l'avvio sono: "/bin", "/boot", "/dev", "/etc", "/lib", "/proc" e "/sbin".


Spesso, se non è possibile creare una partizione separata per /var, è
preferibile spostare /var fuori dalla partizione di root, e più precisamente 
nella partizione /usr (a volte si fa per ridurre la dimensione della
partizione di root o quando lo spazio scarseggia nella partizione di root).
In ogni caso, /var non deve essere un collegamento che punta a /usr perché ciò
renderebbe più difficile la separazione tra /usr e /var e 
verosimilmente si creerebbero conflitti di nomi. Invece è meglio collegare 
/var a /usr/var.

In genere, le applicazioni non dovrebbero aggiungere directory sul primo
livello di /var. Tali directory dovrebbero essere aggiunte solo se hanno
qualche implicazione a livello globale, e dopo aver consultato la mailing
list dell'FHS.
  

/var/backups

Directory che contiene i backup di vari file di sistema fondamentali come: /etc/shadow, /etc/group, /etc/inetd.conf e dpkg.status, che normalmente vengono rinominati con nomi del tipo: dpkg.status.0, group.bak, gshadow.bak, inetd.conf.bak, passwd.bak, shadow.bak

/var/cache

Serve a contenere dati transitori memorizzati dalle applicazioni. Questi dati vengono generati localmente come risultato di lunghe operazioni di I/O o di laboriosi calcoli; generalmente possono essere rigenerati o recuperati. A differenza di /var/spool, i file di questa directory possono essere eliminati senza perdita di dati; i dati restano validi fra le chiamate dell'applicazione e il riavvio del sistema. La presenza di una directory separata per i dati transitori permette agli amministratori del sistema di impostare regole per il disco e il backup diverse da quelle delle altre directory presenti in /var.

/var/cache/fonts

I font generati localmente. In particolare, tutti i font generati automaticamente da mktexpk devono essere collocati in sottodirectory di /var/cache/fonts denominate in modo appropriato.

/var/cache/man

Una memoria cache per le pagine di manuale formattate su richiesta. I sorgenti delle pagine di manuale normalmente si trovano in /usr/share/man/; alcune pagine di manuale potrebbero avere una versione preformattata, che viene collocata in /usr/share/man/cat* (oggi questo non è molto frequente). Altre pagine di manuale devono essere formattate alla prima lettura; la versione formattata è quindi messa in /var/man, in modo che la persona successiva, che vede la stessa pagina, non debba attendere che sia formattata (/var/catman spesso viene svuotata nella stesso modo in cui vengono svuotate le directory temporanee).

/var/cache/"nome-pacchetto"

Dati transitori specifici del relativo pacchetto.

/var/cache/www

Proxy WWW o dati transitori.

/var/crash

Questa directory è destinata a contenere i dump dei crash di sistema. Attualmente i dump dei crash di sistema non sono supportati sotto Linux; comunque lo sviluppo è già completo e si è in attesa dell'incorporamento nel kernel Linux.

/var/db

È un contenitore della banca dati.

/var/games

Tutti i dati variabili relativi ai giochi installati nella directory /usr si trovano qui. Questa directory contiene dati variabili che in precedenza si trovavano in /usr. Dati statici, come testi di aiuto, descrizioni di livello, etc., rimangono comunque altrove, per esempio in /usr/share/games. La separazione di /var/games e /var/lib avvenuta nella release FSSTND 1.2 permette il controllo locale delle strategie di backup, dei permessi e dell'utilizzo del disco, così come la condivisione fra host e la riduzione della confusione in /var/lib. In aggiunta, /var/games è il percorso usato tradizionalmente da BSD.

/var/lib

Contiene librerie o file di dati dinamici come i database rpm e dpkg, e i punteggi dei giochi. Inoltre, questa gerarchia contiene informazioni sullo stato inerente a un'applicazione o al sistema. L'informazione sullo stato sono dati che i programmi modificano quando sono in esecuzione, e che riguardano una macchina specifica. Gli utenti non dovrebbero mai aver bisogno di modificare i file in /var/lib per configurare un'azione di un applicativo. L'informazione sullo stato è generalmente usata per preservare la condizione di un'applicazione (o un gruppo di applicazioni correlate) tra chiamate successive e fra diverse istanze di una stessa applicazione. Un'applicazione (o un gruppo di applicazioni correlate) usa una sottodirectory di /var/lib per i propri dati. C'è una sottodirectory, /var/lib/misc, che è fatta per i file di stato che non necessitano di una sottodirectory; le altre sottodirectory dovrebbero essere presenti solo se l'applicazione in questione è inclusa nella distribuzione. La directory /var/lib/"nome" è la posizione da usare per tutti i programmi di supporto alla gestione dei pacchetti; distribuzioni differenti possono usare nomi differenti, naturalmente.

/var/local

Dati variabili per programmi locali (per esempio, programmi installati dall'aministratore del sistema) che sono installati in /usr/local (invece di una partizione "/var" montata in remoto). Da notare che anche i programmi installati in locale dovrebbero usare le altre directory /var, se sono appropriate, per esempio /var/lock.

/var/lock

Molti programmi seguono la convenzione di creare un file di lock in /var/lock per indicare che stanno usando un particolare dispositivo o file. Questa directory contiene quei file di lock (per alcuni dispositivi) e, se tutto va bene, altri programmi noteranno il file di lock e non cercheranno di usare il dispositivo o il file.

I file di lock dovrebbero essere conservati all'interno della struttura della directory /var/lock. I file di lock per dispositivi e altre risorse condivise da applicazioni multiple, come i file di lock dei dispositivi seriali che si trovavano originariamente in /usr/spool/locks o /usr/spool/uucp, ora devono essere collocati in /var/lock. La convenzione da usare per la denominazione è LCK.. seguito dalla base del nome del file di dispositivo. Per esempio, per bloccare /dev/ttyS0 verrebbe creato il file LCK..ttyS0. Il formato usato per i contenuti di tali file di lock dev'essere il formato dei file di lock dell'UUCP HDB. Il formato HDB è usato per archiviare l'identificatore di processo (PID) come un numero decimale ASCII a dieci byte, con un newline finale. Per esempio, se il processo 1230 avesse un file di lock, conterrebbe gli undici caratteri: spazio, spazio, spazio, spazio, spazio, spazio, uno, due, tre, zero, newline.

/var/log

File di registro del sistema e di diversi programmi o servizi, specialmente login (/var/log/wtmp, che registra tutti gli accessi al sistema e le uscite dal sistema) e syslog (/var/log/messages, dove di solito sono archiviati tutti i messaggi del kernel e dei programmi di sistema). I file in /var/log possono aumentare di dimensione indefinitamente, e può essere necessario svuotarli a intervalli regolari; questo compito ora viene normalmente svolto attraverso programmi di rotazione del registro, come "logrotate". Questo programma di utilità permette anche la compressione della rotazione automatica, la rimozione e l'invio per posta elettronica dei file di registro. Logrotate può essere impostato per operare su un file di registro a cadenza giornaliera, settimanale, mensile, o quando il file raggiunge una certa dimensione. Normalmente, logrotate viene eseguito come uno job di cron giornaliero. Questo è un buon punto di partenza per iniziare la ricerca degli errori dovuti a problemi tecnici generali.

/var/log/auth.log

Registrazione di tutti gli accessi al sistema e le uscite dal sistema eseguite dagli utenti comuni e dai processi di sistema.

/var/log/btmp

Registrazione di tutti i tentativi di accesso al sistema non accettati. Consultabile attraverso il comando lastb.

/var/log/debug

L'output del debugging proveniente da vari pacchetti.

/var/log/dmesg

Il buffer del kernel ring. Il comando dmesg si riferisce al contenuto di questo file.

/var/log/gdm/

I file di registro di GDM. Generalmente una selezione dell'ultimo file di registro di X. Si veda /var/log/xdm.log per maggiori dettagli.

/var/log/kdm.log

File di registro di KDM. Generalmente una selezione dell'ultimo file di registro di X. Si veda /var/log/xdm.log per maggiori dettagli.

/var/log/messages

Registrazioni del sistema.

/var/log/pacct

Il "process accounting" è la contabilità dell'attività dei processi. I dati raw dell'attività dei processi si trovano in questa directory. Per avere accesso al contenuto di questo file si possono usare tre comandi, dump-acct, sa (riassunto del process accounting) e lastcomm (lista dei comandi eseguiti sul sistema).

/var/log/utmp

Sessioni utente attive. Questo è un file di dati e come tale non può essere visto normalmente. È possibile creare una forma leggibile col comando dump-utmp, o tramite i comandi w, who o users.

/var/log/wtmp

Registro di tutti gli utenti che hanno avuto accesso al sistema e di queli che sono usciti dal sistema. Il comando last può essere usato per accedere al file in forma leggibile. Elenca anche ogni connessione e ogni cambio di runlevel.

/var/log/xdm.log

File di registro di XDM. Normalmente è una selezione dell'ultima registrazione dell'avvio di X ed è pressoché inutile, considerati i dettagli che possono fornire i registri di X. Si consiglia di consultare questo file solo per questioni strettamente legate a XDM, altrimenti è meglio usare i file di registro di X.

/var/log/XFree86.0.log, /var/log/XFree86.?.log

File di registro dell'avvio di X. Un'eccellente risorsa per i problemi che si manifestano con la configurazione di X. I file di registro sono numerati in base a quando sono stati usati per l'ultima volta. Per esempio, l'ultimo file di registro viene archiviato in /var/log/XFree86.0.log, alla prossima registrazione viene rinominato in /var/log/XFree86.9.log, e via di seguito

/var/log/syslog

Il file di registro del "sistema". Il contenuto di questo file è gestito tramite il demone syslogd, che nella maggior parte dei casi si prende cura della manipolazione di tutti i registri sulla maggior parte dei sistemi.

/var/mail

Contiene i file della mailbox dell'utente. I file di posta prendono la forma /var/mail/"nomeutente" (si noti che /var/mail può essere un collegamento simbolico ad un'altra directory). I file della mailbox dell'utente sono archiviati in questa directory nel formato UNIX mailbox standard. La ragione dell'inserimento della directory in questo punto della gerarchia è stata quella di portare il FHS in linea con quasi tutte le implementazioni UNIX (precedentemente veniva collocata in /var/spool/mail). Questo cambiamento è importante per l'interoperabilità, poiché una singola maibox di /var/mail viene spesso condivisa tra diversi host e tra diverse implementazioni UNIX (malgrado i problemi di blocco di NFS).

/var/opt

I dati variabili dei pacchetti in /opt devono essere intallati in /var/opt/"nome-pacchetto", dove "nome-pacchetto" è il nome del sottoalbero di /opt dove si trovano i dati statici di un pacchetto software aggiuntivo, tranne nel caso in cui sia stato sostituito da un altro file in /etc. Non viene imposta alcuna struttura sull'ordinamento interno di /var/opt/"nome-pacchetto".

/var/run

Contiene i file di identificazione dei processi (PID) dei servizi di sistema e altre informazioni sul sistema valide fino al successivo avvio del sistema. Per esempio, /var/run/utmp contiene informazioni sugli utenti attualmente (registrati) connessi al sistema.

/var/spool

Contiene i file di spool, per esempio per mail, per le news, la coda di stampa (lpd) e altri lavori in coda. I file di spool conservano i dati che devono essere elaborati dopo che è terminato un lavoro che sta occupando un dispositivo o è avviato il job di cron appropriato. Ogni spool ha la sua propria sottodirectory sotto /var/spool, per esempio, le "tabelle di cron" sono archiviate in /var/spool/cron/crontabs.

/var/tmp

File temporanei di grandi dimensioni, o che devono persistere per più tempo di quanto consentito per la directory /tmp (comunque l'amministratore del sistema potrebbe non consentire file molto vecchi neanche in /var/tmp).

/var/named

Database per BIND. Il Berkeley Internet Name Domain (BIND) implementa un server dei nomi di dominio per Internet. BIND è il software per i server dei nomi di gran lunga più usato su Internet, ed è supportato dall'Internet Software Consortium, www.isc.org.

/var/yp

Database per NIS (Network Information Services). NIS è usato prevalentemente per permettere a diverse macchine di una rete di condividere le stesse informazioni su un account (per esempio /etc/passwd); in passato era chiamato Yellow Pages (YP).

Per la conformità all'FSSTND, in /var sono richieste le seguenti directory, o collegamenti simbolici a directory:


  /var/cache	Dati transitori dei programmi
  /var/lib	Informazioni variabili di stato dei programmi
  /var/local	Dati variabili di /usr/local
  /var/lock	File di lock
  /var/log	File e directory di registro
  /var/opt	Dati variabili di /opt
  /var/run	Dati relativi ai processi in esecuzione
  /var/spool	Dati di spool delle applicazioni
  /var/tmp	I file temporanei preservati tra i riavvii del sistema
  

Diverse directory sono "riservate", nel senso che non devono essere usate arbitrariamente da certe nuove applicazioni, perché entrerebbero in conflitto con consuetudini consolidate o locali. Queste sono:


  /var/backups
  /var/cron
  /var/msgs
  /var/preserve
  

Le seguenti directory, o collegamenti simbolici a directory, devono stare in /var se il sottosistema corrispondente è installato:


  account   Registri della contabilità dei processi (process accounting)
	      (opzionale)
  crash     Dump dei crash di sistema (opzionale)
  games     Dati variabili dei giochi (opzionale)
  mail      File della mailbox dell'utente (opzionale)
  yp        File del database di Network Information Service (NIS) (opzionale)