Essendo il sistema utilizzato da Apple basato su UNIX, durante l’utilizzo quotidiano viene mantenuta traccia di tutti problemi, crash, errori e molto altro, in appositi file di log. Questi, con il tempo, possono anche diventare di dimensioni considerevoli. Vediamo come gestirli.
La Apple, da sempre, ha utilizzato basi UNIX per creare i suoi sistemi operativi. E Mac OS X Lion non è da meno.
Forse non tutti sanno, che i sistemi UNIX, oltre a dare estrema sicurezza a livello utente, è in grado di tracciare tutto quello che accade sul sistema operativo.
Queste “informazioni storiche” vengono scritte sui file di log. Questi non sono altro che file di testo, consultabili anche tramite un qualsiasi editor di testo, o tramite Terminale.
Bisogna, altresì, sapere che esistono anche i livelli di log: potremo fare scrivere varie tipologie di informazioni in base alle necessità.
Ad esempio, impostando un file di log a DEBUG verranno scritte ogni tipo di informazioni, con ERROR verranno tracciati soli gli errori e così via.
I file di log generati dal nostro sistema operativo sono tutti presenti su /var/log, così come potete vedere dall’immagine sotto.
Molti dei file già sono impostati per “ruotare“, ovvero creare un nuovo file, al determinarsi di un determinato evento.
Vediamo insieme quali sono i parametri su cui possiamo intervenire.
Tutte le impostazioni vengono gestiti da un file, editabile sia da Terminale che tramite editor, che su Mac OS X 10.7 è presente su /etc e denominato newsyslog.conf.
Partendo dall’immagine vediamo come è strutturato.
Tutta la parte iniziale, ovviamente, sono informazioni che non devono essere modificate.
La sezione importante è:
# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]
Vediamo le voci indicate:
- logfilename: questo è il nome del file che vogliamo venga ruotato;
- [owner:group]: campo opzionale in cui può essere indicato chi è il proprietario e il relativo gruppo. Da notare che i “:” sono necessari;
- mode: indicano i permessi che dovrà avere il file (abbiamo già parlato dei permessi sui file in questo articolo);
- count: questo numero indica quanti file storici il sistema deve mantenere;
- size: la misura massima che il file da ruotare debba assumere;
- when: se vogliamo che lo “switch” dei log avvenga in determinato momento;
- flags: esistono varie opzioni, ad esempio J indica che il file verrà compresso tramite bzip2, C indica la creazione del file nel caso non esista e molto altro;
- [/pid_file]: opzione che andrà utilizzata se si applica l’opzione U in flags;
- [sig_num]: opzione che andrà utilizzata se si applica l’opzione U in flags.
Ora, molti dei file di log sono già schedulati perchè questi ruotino. Ma, forse, non sapete che uno dei file più importanti è il system.log.
Per una strana idea di Apple, questo file è impostato nel modo seguente:
/var/log/system.log 640 7 * @T00 J
Cosa vuol dire? Semplice: il file ruota tutti i giorni a mezzanotte (@T00), lo comprime utilizzando il metodo bzip2 (J), mantiene fino a sette file, non importa quando sia grande il file e imposta i permessi a 640.
Ora, questa tipologia di configurazione va bene se noi lasciassimo sempre accesso il nostro Mac.
Infatti, avendo impostato a mezzanotte la rotazione, se il Mac sarà acceso verrà effettuata la rotazione altrimenti si passa direttamente al giorno successivo, senza recuperare la schedulazione.
Mentre su Mac desktop potrebbe andar bene, difficilmente sui portatili riusciremo a far ruotare il file: consengueza, il file crescerà sempre.
Come fare allora? Basta cambiare la configurazione del file.
Facciamo un esempio pratico: vogliamo che il file system.log ruoti tutti i giorni, indipendemente dalla dimensione del file stesso, mantenga sette file, comprima i file più vecchi e che avvenga tutti i giorni alle 13.
Per prima cosa, dobbiamo aprire il Terminale, tramite ricerca su Spotlight o sotto /Applicazioni/Utility.
A questo punto, per precauzione, è meglio fare un backup del file: il file ha solo permessi di lettura e il proprietario è root.
Per farlo digitiamo:
cd /etc
sudo cp newsyslog.conf newsyslog.old
Inserite la password del vostro utente quando richiesto.
Ora passiamo a modificare il file stesso: per farlo digitate:
sudo vi newsyslog.conf
Si aprirà la schermata, come in figura. Scendiamo fino a quando il cursore non si posiziona sulla riga dove è indicato il file system.log.
Facciamo una copia della riga premendo due volte la lettera “y” (minuscola) e successivamente la lettera “p”.
Questo permetterrà di duplicare la riga: non vi preoccupate del messaggio che appare.
Ora, in una delle due righe presenti dovremo inserire il simbolo “#” affinché questa non venga più letta. Per farlo premete “i” all’inizio della riga, inserite il simbolo e premete “esc”.
Spostatevi sull’altra riga: dobbiamo cambiare il valore “@T00” in “$D13”. Cosa vuol dire “$D13”? Semplicemente che il file dovrà essere ruotato tutti i giorni alle 13, anziché a mezzanotte.
Per farlo, spostatevi con le frecce fino al simbolo “@” e premete quattro volte il carattere “x”.
Ora non ci resta che inserire il nuovo orario: per farlo, premete di nuovo “i” e digitate “$D13” (senza apici ovviamente).
A questo punto abbiamo finito: salviamo ed usciamo premendo “esc” e digitando “:wq!” (sempre senza apici).
Alle ore 13 il file system.log comincerà a ruotare e verranno creati altri file .bz2 così come nella figura.
Ovviamente, questa procedura potrà essere utilizzata per tutti i file che devono ruotare.