Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Comandi Linux da amministratore di sistema

Dieci comandi linux da terminale che possono tornare utili a chi vuole tenere sotto controllo il proprio sistema.
Dieci comandi linux da terminale che possono tornare utili a chi vuole tenere sotto controllo il proprio sistema.
Link copiato negli appunti

Uno degli aspetti più importanti nella gestione di un computer basato su una distribuzione GNU/Linux è l'amministrazione del sistema operativo: eseguire operazioni di manutenzione e controllo delle periferiche, dei processi e delle memorie risulta essere di fondamentale importanza per garantire un corretto funzionamento della macchina. In questo articolo analizzeremo 10 dei più importanti comandi linux da terminale per amministratori di sistema.

Monitorare le risorse dei processi: top

I processi avviati costituiscono un fattore cruciale nell'economia di un sistema operativo: non accorgersi di alcuni problemi legati ad un determinato processo può avere come conseguenza un drastico aumento delle risorse necessarie al suo funzionamento, con conseguente calo delle prestazioni. Un utile comando che permette di avere sempre sotto controllo i processi eseguiti all'interno di una distribuzione Linux è top. Lanciandolo da riga di comando si da la possibilità al terminale di trasformarsi in un vero e proprio monitor in tempo reale che mostra numerose informazioni in merito ai processi gestiti dal Kernel: ad intervalli regolari l'applicazione esegue l'aggiornamento automatico dei dati mostrati, ordinati secondo un criterio basato sul consumo di risorse.

Figura 1: Comando top
(clic per ingrandire)

Come la maggior parte dei comandi per il terminale, anche top permette di essere eseguito in combinazione con alcuni parametri che offrono la possibilità di personalizzarne alcuni aspetti in base alle proprie esigenze. Alcuni dei parametri più utili di top sono:

  • -d secondi.decimi : il parametro -d permette di modificare l'intervallo di tempo di aggiornamento della schermata. Il valore passato deve seguire il formato decimi.secondi;
  • -u utente : utile per monitorare i processi relativi ad un determinato utente;
  • -p PID1 PID2 ...: permette di controllare solo determinati processi, il cui PID deve essere specificato come valore del parametro (per conoscere il PID di un processo è possibile leggere la seconda colonna dell'output ricevuto tramite il comando ps -aux).
  • Informazioni di sistema: uname

    Il comando uname permette di conoscere in maniera rapida e comoda alcune informazioni riguardanti la macchina ed il sistema operativo in uso, senza dover ricorrere a particolari menù negli strumenti presenti in ogni ambiente desktop. A seconda del parametro con cui è eseguito, uname offre la possibilità di conoscere specifici dettagli: Kernel in uso, distribuzione utilizzata, tipologia di hardware, informazioni sul processore e così via. Alcuni dei paramettri supportati sono i seguenti:

    • -a
    • -s
    • -r
    • -p
    • -i
    • -o
    • -n
    • -m
    Figura 2: Comando uname
    (clic per ingrandire)

    Questo comando non necessita di particolari privilegi per essere eseguito ed il suo output risulta essere piuttosto essenziale, limitandosi a fornire lo stretto necessario in merito alle informazioni richieste. Nel caso in cui non siano disponibili alcuni dati, come il tipo di processore utilizzato o le informazioni sulla piattaforma hardware a causa dell'impossibilità di individuare tali dettagli, uname mostrerà come uscita il valore unknown.

    Memoria libera: free

    La RAM costituisce uno degli elementi essenziali nell'architettura di un calcolatore: la saturazione della memoria può compromettere la stabilità e l'efficienza di una qualunque macchina. Per tale motivo, durante l'utilizzo intensivo di software bisognosi di ingenti risorse è buona prassi tenere sotto controllo lo spazio disponibile in RAM: per farlo è possibile utilizzare il comando free, che offre inoltre dettagli sulla memoria libera nella partizione di swap, utilizzata come supplemento alla memoria RAM disponibile sul computer.

    Figura 3: Comando free
    (clic per ingrandire)

    Tra i parametri di maggiore interesse figurano:

    • -b
    • -k
    • -l
    • -t
    • -s secondi : seguito da un valore numerico, il parametro -s permette di ricevere ad intervalli regolari informazioni sulla memoria, senza la necessità di lanciare manualmente il comando ogni qual volta si necessita di conoscere tali informazioni.
    • Spazio libero: df

      Se free permette di controllare la quantità di memoria RAM disponibile, il comando df permette di eseguire un'operazione simile sui dispositivi di archiviazione: il suo scopo è infatti quelli di fornire informazioni sullo stato dell'hard disk del computer in uso e di ogni altro file system montato (pen drive, hard disk esterni e qualsiasi altra periferica esterna montata). Il comando df può essere eseguito sia senza alcun dispositivo target che seguito dal percorso di determinati file system: nel primo caso mostra lo spazio libero su ogni file system montato, nel secondo invece si limita a quelli selezionati manualmente.

      Figura 4: Comando df
      (clic per ingrandire)

      I principali parametri supportati sono:

      • -B
      • -h
      • -H
      • -l
      • -T
      • -x

      Monitorare il Kernel: dmesg

      dmesg, abbreviativo di display message, è un comando che permette di ricevere i messaggi provenienti direttamente dal Kernel. In particolare, dmesg fornisce i messaggi contenuti all'interno del buffer del Kernel, e non ancora scritti sul file system. Il suo utilizzo può essere molto utile per ricevere, ad esempio, informazioni su un dispositivo appena collegato,o anche sulle componenti hardware già connesse che comunicano con il Kernel. Le funzionalità di dmesg non si fermano però qui: le prime righe dell'output di questo comando, infatti, contengono informazioni sul sistema operativo, sul Kernel utilizzato, sulla memoria RAM disponibile e così via. Il suo utilizzo non prevede l'inserimento di alcun parametro, per cui è possibile lanciare direttamente

      per ricevere l'output desiderato.

      Figura 5: Comando dmesg
      (clic per ingrandire)

      Tale comando, però, produce una lunga serie di informazioni, che possono rendere difficoltosa la ricerca di una riga in particolare. Per questo motivo, è possibile utilizzare dmesg in combinazione con less

      per ricevere le informazioni una riga alla volta, tramite la pressione del pulsante di Invio. L'output restituito da dmesg può anche essere reindirizzato verso un file di testo, disponibile successivamente per eventuali ricerche:

      È possibile inoltre filtrare le informazioni fornite da tale comando, scegliendo quali ricevere: ad esempio, per controllare cosa accade relativamente alle porte USB possiamo digitare

      Montare file system: mount

      Il comando mount permette di montare un dispositivo o una partizione in un determinato percorso, per potervi accedere in lettura e scrittura per utilizzare i file ivi localizzati o aggiungerne di nuovi. Lo stesso comando, con appositi parametri, permette di visualizzare l'elenco di tutti i file system montati con alcune informazioni utili a riconoscere il percorso di montaggio e altri dettagli. Per montare un determinato dispositivo all'interno di una directory il comando generale è il seguente:

      dove al posto di FILE_SYSTEM va inserito il tipo di file system con cui è stato formattato. Se si vuole ad esempio montare in /mount/disco una partizione ext4 localizzata in /dev/sda2, il comando da lanciare il seguente:

      $ mount -t ext4 /dev/sda2 /mount/disco
      Figura 6: Comando mount
      (clic per ingrandire)

      Per poter eseguire tale comando è necessario possedere i privilegi di ammnistratore (utente root) e che la directory ove montare la partizione sia già stata creata e sia scrivibile. La lista di partizioni e dispositivi montati è disponibile tramite il parametro -l, che permette di ricevere informazioni anche sulla directory in cui ciascun file system è montato, la sua tipologia ed altri dettagli.

      Gestione degli utenti: w

      Un altro aspetto importante da tenere sotto controllo è la gestione degli utenti: ogni distribuzione GNU/Linux permette infatti di creare più utenti, ciascuno dei quali provvisto di una propria cartella home, di una propria configurazione di sistema e di altri parametri personalizzati. Più utenti possono essere loggati allo stesso computer contemporaneamente, per cui è possibile controllare quali utenti sono collegati e quali sono le operazioni ed i processi ad essi associati in ogni momento. Per fare ciò è disponibile il comando w, che si rivela in molti casi indispensabile nell'amministrare un computer cui hanno accesso più persone, ciascuna con un proprio account.

      Figura 7: Comando w
      (clic per ingrandire)

      L'output del comando w si presenta composto da diverse colonne, dominate ciascuna da un'intestazione che ne esplica il contenuto. Eseguendo il comando senza alcun parametro aggiuntivo si visualizza l'elenco completo delle informazioni disponibili tramite tale istruzione, mentre per modificarne il comportamento sono disponibili alcuni parametri da aggiungere al comando come:

      • -h
      • -s
      • -u

      Visualizzare i processi attivi: ps

      Il comando ps permette di avere una panoramica generale sui processi attivi all'interno del sistema, con relativo PID e altre informazioni utili per identificare ogni singolo processo e ottenere maggiori informazioni su di essi. Una delle principali caratteristiche di ps è la possibilità di passare a tale comandi parametri in formato UNIX, BSD o GNU, a seconda del numero di trattini presenti prima di ogni parametro. In questo modo, è possibile filtrare i processi che tale comando restituirà come output: ad esempio, per ricevere l'elenco di tutti i processi attivi, possono essere utilizzati i seguenti parametri

      che in sostanza producono lo stesso output.

      Figura 8: Comando ps
      (clic per ingrandire)

      Per filtrare i processi a seconda degli utenti, è possibile specificare il nome dell'utente nel seguente modo

      L'output sarà organizzato in colonne, con la prima riga che indica l'etichetta di ognuna. Le informazioni che vengono restituite quando si fornisce il parametro aux sono l'utente, il PID del processo, la CPU e la RAM che il processo occupa, la porta eventualmente utilizzata, l'orario di avvio ed altre utili informazioni.

      Cercare file: find

      La riga di comando si propone come soluzione ottimale anche per la ricerca di file. Tramite il comando find, infatti, è possibile dare il via a ricerche in molti casi più dettagliate di quelle effettuate tramite strumenti grafici, il più delle volte privi di numerose ma interessanti opzioni. Il suo utilizzo è piuttosto semplice: al comando file va aggiunto il percorso all'interno del quale effettuare la ricerca ed nome del file da cercare preceduto dal parametro -name, con una serie di eventuali parametri aggiuntivi utili a specificare meglio alcune caratteristiche dei risultati da visualizzare.

      Figura 9: Comando find
      (clic per ingrandire)

      Tra questi, i più importanti risultano essere:

      • -size
      • -cmin
      • -user
      • -type

      Programmare operazioni: cron

      Per quanto sia possibile eseguire manualmente operazioni di manutenzione del proprio sistema operativo Linux, può risultare comodo impostare un qualche strumento in modo tale che determinate operazioni vengano eseguite automaticamente, ad intervalli regolari, senza la necessità di dover intervenire ogni qual volta ce ne sia bisogno. Uno di questi strumenti è cron, un pacchetto disponibile per tutte le principali distribuzioni e preinstallato in numerosi casi. Più che uno specifico comando, cron è un'applicazione che utilizza alcune cartelle predefinite nelle quali vanno inseriti gli script che si vuole eseguire secondo determinati schemi temporali.

      Le directory utilizzate sono:

      Figura 10: Comando cron
      (clic per ingrandire)

      Ciascuno script può contenere una singola istruzione oppure un set di comandi per ottenere l'obiettivo desiderato. Nel caso in cui si voglia personalizzare ulteriormente l'esecuzione automatica di uno script o di un comando è possibile utilizzare il file /etc/crontab, aggiungendo una riga per ogni comando da aggiungere all'elenco, secondo il seguente pattern:

      mm hh gg MM GG user comando

      dove:

      • mm
      • hh
      • gg
      • MM
      • GG
      • user
      • comando

      Ti consigliamo anche