Informazioni sul sistema e log

From Manjaro Linux
Jump to: navigation, search

⇐ Torna alla Pagina Principale

Panoramica

Spesso capita, durante l'esperienza d'utilizzo di un sistema operativo GNU/Linux, di dover trovare informazioni precise sul proprio sistema; per esempio per poterle fornire in una segnalazione di bug o su un forum a qualcuno che sta cercando di aiutare l'utente ed ha bisogno di capire la situazione. Altre informazioni molto utili da questo punto di vista sono i messaggi di log, che registrano gran parte di quello che succede nel sistema operativo. Saranno quindi esposti di seguito gli strumenti più utili per raggiungere queste informazioni.

Informazioni sulle componenti del sistema

inxi

Il comando inxi è uno strumento comodo, potente ed il cui risultato è molto semplice da interpretare. Nel caso in cui non risultasse installato, è presente nei repository ufficiali di Manjaro, quindi è sufficiente lanciare

sudo pacman -S inxi

Le opzioni sono molte e sono consultabili attraverso il manuale del comando lanciando man inxi. Una combinazione che permette di avere praticamente ogni informazione utile, filtrando quelle sensibili come gli indirizzi MAC, è la seguente

sudo inxi -Fmrxxz

lshw

Se le informazioni fornite da inxi non fossero sufficienti per lo scopo, è disponibile anche il comando lshw che fornisce molte più informazioni sulla configurazione dell'hardware. Il programma è disponibile nei repository di Manjaro ed è installabile tramite

sudo pacman -S lshw

Le informazioni contenute nell'output di questo programma sono molte, troppe per l'uso comune, ma comprendono parti del sistema spesso difficili da esplorare manualmente come versione dei firmware, numero di banchi di memoria installati, proprietà dei processori e dei bus. Avendo bisogno di accedere ad informazioni normalmente riservate al gestore del sistema, questo programma va eseguito con i permessi di root, quindi

sudo lshw

Informazioni sul comportamento del sistema

top e htop

Il comando top è presente nativamente in qualunque sistema GNU/Linux e fornisce informazioni dettagliate sui processi in esecuzione e sull'utilizzo delle risorse. È sufficiente eseguirlo da terminale per ottenere un elenco, aggiornato ogni 2 secondi, di tutti i processi in esecuzione, ordinati secondo il loro utilizzo della CPU; nella parte alta dell'output è possibile visualizzare graficamente l'utilizzo totale di CPU e memoria RAM.

Il comando htop è l'equivalente di top ma con maggior usabilità, consentendo l'interazione attraverso l'utilizzo del mouse, e maggior chiarezza nell'output, grazie all'utilizzo di una vasta gamma di colori. Questo programma non è installato di default, ma è presente nei repository ufficiali di Manjaro; per installarlo è quindi sufficiente lanciare

sudo pacman -S htop

È sufficiente cliccare con il mouse sul titolo di una colonna per ordinare secondo quella proprietà tutti i processi in esecuzione, è inoltre possibile visualizzare graficamente l'albero dei processi per scoprire le loro gerarchie.

Per ulteriori informazioni riguardo a questi comandi è sufficiente consultare il manuale di ciascuno, tramite man top o man htop.

free

Il semplicissimo comando free, sempre preinstallato nei sistemi GNU/Linux, permette di vedere la quantità di memoria utilizzata e libera, compresa la quota dedicata alla cache ed al buffer; oltre alla memoria RAM è indicata anche la memoria di swap se presente ed attiva. Il comando di solito è utilizzato nella forma free -h che rende le unità di misura della memoria facilmente leggibili (human readable).

glances

Il programma glances è più nuovo e meno diffuso degli altri, ma per Manjaro è presente nei repository ufficiali e la sua installazione è quindi molto veloce, è sufficiente lanciare

sudo pacman -S glances

Il comando glances, se lanciato nel terminale, permette di avere una visione completa su molte parti del nostro sistema: uso della CPU, della memoria RAM, processi in esecuzione, traffico dati sulla rete, letture e scritture su tutti i dischi montati, spazio occupato sui dischi ed altro ancora. Contenendo così tante informazioni, è meno consigliato per raccogliere semplici informazioni e più per avere uno sguardo complessivo sul comportamento del sistema.

Dischi e volumi

lsblk

Il comando lsblk, preinstallato nel sistema, permette di stampare un elenco dei dispositivi di memorizzazione connessi al sistema e delle loro partizioni, ciascuna affiancata dal relativo (se esistente) punto di mount.

fstab

Il file /etc/fstab è un file di sistema molto importante che indica al sistema operativo, in fase di avvio e non solo, dove montare i vari dispositivi connessi al computer. La sua struttura è semplice ed intuitiva: ha una divisione in colonne che corrispondono a diverse caratteristiche necessarie al montaggio del dispositivo.

# <file system>                            <mount point>   <type>  <options>               <dump>  <pass>
#
UUID=f0b798cd-2b14-400c-9796-45c8839b3af7  /home           ext4    defaults,noatime          0       2
UUID=5943064c-0146-4c10-9b47-58dbfd03ea7f  /               ext4    rw,noatime,data=ordered   0       1
UUID=b20a8439-e670-48fa-8086-77bee27c7a3a  swap            swap    defaults                  0       0
  • <file system> : sotto questa colonna sono indicati, secondo diverse convenzioni, dei codici univoci che identificano il dispositivo;
  • <mount point> : sono indicati i punti di mount predefiniti per ogni dispositivo;
  • <type> : contiene il tipo di filesystem presente sul dispositivo, affinché possa essere montato correttamente;
  • <options> : indica le opzioni di montaggio, per ulteriori informazioni a riguardo consultare man mount;
  • <dump> : indica se è necessario, o meno, effettuare un dump del dispositivo in fase di avvio (solitamente non necessario);
  • <pass> : indica la priorità con cui viene effettuato il controllo del filesystem, 1 è riservato a /, 2 alle altre partizioni da controllare, 0 per le partizioni su cui non è da eseguire il controllo.

Log di sistema

I messaggi di log sono tracce di quello che il sistema compie di importante e, soprattutto, di cosa è andato storto in caso di malfunzionamento. Non contengono molti messaggi riguardo al funzionamento delle applicazioni o dei programmi dell'utente, ma principalmente dei processi legati alla vita del sistema; alcuni programmi hanno propri log posizionati in specifici percorsi, ma non sono interessanti per una trattazione generale.

dmesg

Il comando dmesg è presente su qualsiasi sistema operativo che utilizzi il kernel Linux, come Manjaro, e funziona anche su altri sistemi Unix-like; si tratta dell'applicativo che stampa proprio i messaggi del kernel, rendendoli facilmente leggibili dall'utente. Per ottenere i messaggi è sufficiente lanciare dmesg da terminale, questo ci stamperà a video tutti i messaggi del kernel dal primo dopo l'accensione all'ultimo prima dell'esecuzione del programma. I messaggi ritenuti particolarmente importanti, come i messaggi di errore, sono indicati con un font grassetto (se l'emulatore di terminale lo consente) o con il colore rosso, come tutti i messaggi di pericolo.

È possibile stampare solo le prime o le ultime righe dell'output di dmesg, utilizzando i comandi head e tail (testa e coda).

dmesg | head
dmesg | tail

Questo metodo non consentirà però di visualizzare i colori e le parti in grassetto del messggio originale.

journalctl

Tutti i sistemi operativi GNU/Linux che utilizzano systemd, chi non sapesse cosa sia probabilmente lo sta utilizzando, possiedono questo potente comando che permette l'accesso ad un log centralizzato per molte parti diverse del sistema. La maggior parte delle versioni di Manjaro utilizzano systemd, fanno eccezione quelle che utilizzano al suo posto openrc e quelle personalizzate dall'utente stesso con altri init system.

Il comando journalctl stampa su terminale un'impaginazione dei log di diverse parti del sistema, che è possibile scorrere con le frecce direzionali, con i tasti 'Pag' e con i tasti 'Inizio' e 'Fine'. In questo elenco di messaggi compaiono quelli del kernel visti anche in dmesg, ma non solo, sono presenti anche i messaggi di 'CUPS', il server di stampa, di 'NetworkManager', il gestore di connessioni, di 'dbus', il gestore della comunicazione tra le parti del sistema, e molti altri ancora. I log presenti in questo output non appartengono solo al periodo trascorso dall'avvio del sistema, ma anche agli avvii precedenti, il numero dei quali dipende dal numero dei messaggi per ogni accensione e da come è impostata la rotazione dei log.

Per questo motivo, e per il fatto che sono contenuti messaggi da molte fonti, può essere complicato trovare errori all'interno di questi messaggi di log, in questo ci viene in aiuto il comando grep. Questo comando ci permette di stampare a video solo le righe che contengono una certa stringa, per esempio se si cercano messaggi legati alla connessione di rete è possibile lanciare

journalctl | grep -i network

Questo stamperà tutti i messaggi di log che contengono la stringa 'network', e l'opzione -i consente di effettuare una ricerca case-insensitive, non sensibile alle lettere maiuscole. Tra il comando journalctl e il comando grep è presente una barra verticale, chiamata in inglese pipe, che redirige l'output del primo comando nell'input del secondo.

Alcune opzioni utili da utilizzare con journalctl:

  • journalctl -p err : stampa esclusivamente i messaggi catalogati con priorità di errore o superiore (livello di priorità pari a 3), altre priorità possibili sono avvertimento (livello 4) o debug (livello 7), la lista completa è presente nel manuale;
  • journalctl -x : aggiunge sotto ad alcuni messaggi la spiegazione estesa su quello che il messaggio significa, utile per l'interpretazione degli errori;
  • journalctl -b -1 : stampa i log risalenti all'ultimo avvio del sistema, dall'accensione allo spegnimento;
  • journalctl -b 1 : stampa i log risalenti al primo, il più vecchio, avvio del sistema presente nei log.

Ulteriori opzioni sono consultabili nel manuale tramite il comando man journaltcl.

Server grafico X.org

I file di log del server grafico, che si occupa principalmente di gestire tutto ciò che viene stampato sullo schermo, si trovano nella cartella /var/log; solitamente vi si trovano i file log relativi alle ultime due sessioni grafiche (compresa quella in esecuzione, se presente) con il nome di Xorg.0.log e Xorg.0.log.old.

In questi file di log è possibile trovare informazioni sul caricamento dei driver per la scheda grafica e per i dispositivi di input (mouse e tastiera), sulla gestione degli schermi, sulla configurazione del compositor e altro ancora.

Collegamenti esterni