Comandi systemd piu comuni per gestire facilmente il sistema
La gestione del sistema e dei servizi delle macchine virtuali Linux è una competenza chiave per qualsiasi amministratore che lavora con ambienti cloud. Acquisisci familiarità con i numerosi sottocomandi e osserva la produttività della tua amministrazione Linux salire alle stelle. Systemd è un moderno sistema init e gestore di sistemi e servizi per Linux. È progettato per essere compatibile con i tradizionali script di inizializzazione di System V e LSB (Linux Standard Base), fornendo funzionalità avanzate per la gestione dei servizi e delle risorse di sistema. È diventato il sistema di init predefinito per molte distribuzioni Linux popolari, come Fedora, Ubuntu, Debian, openSUSE e Arch Linux. Il comando systemctl gestisce le configurazioni del sistema e dei servizi, consentendo agli amministratori di gestire il sistema operativo e controllare lo stato dei servizi. Inoltre, systemctl è utile per la risoluzione dei problemi e l’ottimizzazione delle prestazioni di base.
1. systemdctl
systemctl
è uno strumento da riga di comando che consente di interagire con il sistema systemd e il gestore dei servizi su Linux abilitato per systemd. Fornisce un’ampia gamma di funzionalità per controllare e gestire servizi, unità e stati del sistema.
systemctl status [service]
: controlla lo stato di un servizio o di un’unità.systemctl start [service]
: avvia un servizio o un’unità.systemctl stop [service]
: arresta un servizio o un’unità.systemctl restart [service]
: Riavvia un servizio o un’unità.systemctl reload [service]
: Ricarica la configurazione di un servizio senza riavviarlo (se supportato).systemctl enable [service]
: abilita l’avvio di un servizio all’avvio.systemctl disable [service]
: disabilita l’avvio di un servizio all’avvio.systemctl list-units
: Elenca tutte le unità (servizi, supporti, dispositivi, ecc.) gestite da systemd.systemctl list-unit-files
: Elenca tutti i file unità e il loro stato abilitato/disabilitato.systemctl daemon-reload
: Ricarica la configurazione di systemd, richiesta dopo aver modificato i file di servizio.
2. journalctl
journalctl
è il comando per interrogare e visualizzare i log dal systemd journal sui sistemi Linux. Il systemd journal è un sistema di registrazione centralizzato e strutturato che raccoglie e archivia i messaggi di registro da vari componenti del sistema, inclusi il kernel, i servizi e le applicazioni. journalctl
fornisce numerose opzioni per il filtraggio e la visualizzazione delle voci di registro, rendendolo un potente strumento per la risoluzione dei problemi e il monitoraggio degli eventi di sistema.
journalctl
: mostra il registro completo del diario.journalctl -u [service]
: mostra i registri per un servizio o un’unità specifici.journalctl -f
: mostra continuamente nuove voci di registro in tempo reale (modalità follow).journalctl --since "YYYY-MM-DD HH:MM:SS"
: mostra le voci del registro da una data e un’ora specifiche.journalctl --until "YYYY-MM-DD HH:MM:SS"
: mostra le voci del registro fino a una data e un’ora specifiche.journalctl -p [priority]
: mostra le voci di registro con una priorità specifica (ad esempio, emerg, alert, crit, err, warning, notice, info, debug).journalctl -k
: mostra i messaggi di log del kernel.journalctl --disk-usage
: mostra l’utilizzo totale del disco del giornale.
3. hostnamectl
hostnamectl
è un’utilità della riga di comando per la gestione del nome host e delle relative impostazioni. Ti consente di visualizzare e modificare il nome host del sistema, nonché di configurare i nomi host statici, transitori e graziosi. Inoltre, fornisce informazioni sull’attuale sistema operativo, kernel e architettura di sistema.
hostnamectl
: mostra il nome host corrente e le relative informazioni.hostnamectl set-hostname [hostname]
: imposta il nome host del sistema.hostnamectl set-chassis [type]
: imposta il tipo di chassis del sistema (ad es. desktop, laptop, server, vm).hostnamectl set-deployment [environment]
: imposta l’ambiente di distribuzione del sistema (ad es. sviluppo, staging, produzione).
4. timedatectl
timedatectl
è un comando utilizzato per gestire le impostazioni di data, ora e fuso orario. Fornisce un’interfaccia per la visualizzazione e la modifica dell’orologio di sistema, la regolazione del fuso orario e la configurazione del Network Time Protocol (NTP) per la sincronizzazione dell’ora.
timedatectl
: mostra l’ora corrente, la data e le informazioni sul fuso orario.timedatectl set-time [time]
: Imposta l’ora del sistema.timedatectl set-timezone [timezone]
: imposta il fuso orario del sistema.timedatectl set-ntp [true/false]
: abilita o disabilita la sincronizzazione dell’ora di rete (NTP).
5. localectl
localectl
è un comando per la gestione delle impostazioni locali del sistema e del layout della tastiera. Consente di visualizzare e modificare la lingua del sistema, la codifica dei caratteri e le impostazioni del layout della tastiera. Questa utilità semplifica la configurazione delle impostazioni locali e della tastiera appropriate per il sistema, garantendo un supporto linguistico e una funzionalità di input adeguati.
localectl
: mostra le impostazioni locali e della tastiera correnti.localectl set-locale [locale]
: imposta le impostazioni locali del sistema.localectl list-locales
: Elenca le località disponibili.localectl set-keymap [keymap]
: imposta la mappa dei tasti della console di sistema.localectl list-keymaps
: elenca le mappe dei tasti della console disponibili.localectl set-x11-keymap [layout] [model] [variant] [options]
: imposta la mappa dei tasti X11 (grafica). Specifica layout, modello, variante e opzioni secondo necessità.
6. loginctl
loginctl
è un comando per la gestione delle sessioni utente e delle postazioni. Fornisce un’interfaccia per interagire e controllare vari aspetti delle sessioni utente, come l’elenco delle sessioni attive, la visualizzazione dello stato dell’utente e della sessione, la chiusura delle sessioni e il blocco o lo sblocco delle sessioni.
loginctl
: elenca le sessioni utente.loginctl user-status [user]
: mostra lo stato di un utente specifico.loginctl show-session [session_id]
: Mostra informazioni dettagliate su una sessione specifica.loginctl show-user [user]
: Mostra informazioni dettagliate su un utente specifico.loginctl terminate-user [user]
: Termina tutte le sessioni per un utente specifico.loginctl terminate-session [session_id]
: termina una sessione specifica.loginctl lock-session [session_id]
: blocca una sessione specifica.loginctl unlock-session [session_id]
: sblocca una sessione specifica.
7. systemd-analyze
systemd-analyze
è un comando per analizzare e diagnosticare le prestazioni di avvio del sistema e le dipendenze del servizio all’interno del sistema systemd e del gestore dei servizi. Fornisce varie opzioni per ispezionare il processo di avvio, identificare i servizi ad avvio lento e visualizzare la catena critica di unità durante la sequenza di avvio. Utilizzando systemd-analyze
, puoi ottenere informazioni dettagliate sulle prestazioni di avvio del tuo sistema e identificare potenziali colli di bottiglia o problemi che devono essere risolti.
systemd-analyze
: Mostra il tempo impiegato per avviare il sistema.systemd-analyze blame
: Mostra un elenco di servizi ordinati in base al tempo impiegato per inizializzarli.systemd-analyze critical-chain
: mostra un albero della catena di unità critiche durante l’avvio.systemd-analyze plot > boot.svg
: Genera una rappresentazione grafica del processo di avvio, salvata come file SVG.
8. systemd-cgls
systemd-cgls
è un comando per visualizzare la gerarchia dei gruppi di controllo (cgroup) e i processi associati su Linux. I gruppi di controllo sono una funzionalità del kernel che consente di organizzare, gestire e limitare l’utilizzo delle risorse per gruppi di processi. systemd-cgls
fornisce un modo semplice per visualizzare la gerarchia di cgroup in una struttura ad albero, rendendo conveniente esaminare come le risorse vengono allocate e gestite tra diversi servizi e componenti di sistema.
systemd-cgls
: mostra una vista ad albero di tutti i gruppi di controllo e dei relativi processi.
9. systemd-cgtop
systemd-cgtop
è un comando che mostra i principali gruppi di controllo (cgroup) in base al loro utilizzo delle risorse. Fornisce una visualizzazione dinamica in tempo reale del consumo di risorse, come CPU, memoria e I/O, per ogni cgroup. Questa utilità è simile nel concetto al top
comando, ma si concentra specificamente sull’utilizzo delle risorse di cgroups.
systemd-cgtop
: mostra una vista dall’alto in tempo reale dei gruppi di controllo e del relativo utilizzo delle risorse (CPU, memoria e I/O).
10. systemd-delta
systemd-delta
è un comando che analizza e visualizza le differenze tra i file unit systemd forniti dal fornitore, forniti dall’utente e runtime. Ti aiuta a identificare le differenze e le modifiche apportate ai file di unità, che possono essere utili per la risoluzione dei problemi o per comprendere le personalizzazioni nella configurazione del tuo sistema.
systemd-delta
: mostra le differenze tra i file di unità di runtime forniti dal fornitore, forniti dall’utente e.systemd-delta --type=masked
: mostra solo le unità mascherate.systemd-delta --type=extended
: Mostra solo le unità con configurazione estesa.
11. systemd-path
systemd-path
è un comando che visualizza i percorsi e le directory utilizzate dal sistema systemd. Fornisce informazioni su varie directory di sistema, come configurazione, stato, cache, log e directory dei dati di runtime, tra le altre. Utilizzando systemd-path
, è possibile identificare e individuare facilmente le directory utilizzate da systemd e i servizi associati, che possono essere utili quando si lavora con file di configurazione, registri o altri dati di sistema. Può anche aiutare a garantire che si stia lavorando con i percorsi corretti durante la risoluzione dei problemi o la personalizzazione della configurazione di systemd.
systemd-path
: mostra i percorsi di varie directory di sistema (ad es. stato, cache, log, ecc.).systemd-path [name]
: mostra il percorso di una directory specifica per nome (ad esempio, systemd-path logs).
12. systemd-nspawn
systemd-nspawn
è un comando che fornisce funzionalità di contenitore leggero. Consente di creare, avviare e gestire ambienti isolati, chiamati container, utilizzando il kernel Linux esistente e le funzionalità di systemd come cgroup, spazi dei nomi e funzionalità. systemd-nspawn
non è ricco di funzionalità come Docker o LXC, ma offre un approccio semplice e diretto all’esecuzione di container per vari scopi, come applicazioni di test, sviluppo o sandboxing. Può avviare contenitori da directory o immagini disco e supporta l’isolamento della rete e la gestione delle risorse.
systemd-nspawn -D [directory]
: avvia un contenitore con la directory specificata come filesystem root.systemd-nspawn --image [image]
: avvia un contenitore con l’immagine del disco specificata come file system radice.systemd-nspawn -bD [directory]
: avvia un contenitore con la directory specificata come filesystem root e avvialo utilizzando il sistema init contenuto.systemd-nspawn --private-network
: avvia un contenitore con il proprio spazio dei nomi di rete privato.
13. systemd-machine-id-setup
systemd-machine-id-setup
è un comando per inizializzare il /etc/machine-id
file su Linux. Il /etc/machine-id
file contiene un identificatore univoco a 128 bit per il sistema, utilizzato da vari componenti del sistema operativo e dalle applicazioni per tenere traccia del sistema e del suo stato. L’ID macchina deve essere univoco per ciascun sistema e rimanere invariato per tutta la durata del sistema, anche se i componenti hardware vengono sostituiti o il sistema viene reinstallato. L’ID macchina non è destinato a essere un segreto e può essere utilizzato dalle applicazioni per vari scopi, come il monitoraggio dell’utilizzo del sistema o il mantenimento di configurazioni specifiche del sistema. In generale, non è necessario eseguire manualmentesystemd-machine-id-setup
, poiché viene eseguito automaticamente durante l’installazione del sistema o il primo avvio. Tuttavia, in alcuni casi, potrebbe essere necessario eseguirlo per generare o rigenerare l’ID macchina, ad esempio durante la creazione di immagini di sistema personalizzate o la clonazione di macchine virtuali.
systemd-machine-id-setup
: Genera un nuovo ID macchina e memorizzalo in/etc/machine-id
.
14. systemd-escape
systemd-escape
è un comando che ti aiuta a convertire stringhe arbitrarie in un formato adatto all’uso come nomi di unità di sistema, percorsi di file o altri identificatori. È particolarmente utile quando si lavora con stringhe che contengono caratteri speciali, spazi bianchi o altri elementi che non sono consentiti o che possono causare conflitti nei nomi delle unità di sistema.
systemd-escape [string]
: Escape della stringa specificata per l’uso in un nome di unità systemd.systemd-escape --unescape [string]
: Annulla l’escape di una stringa precedentemente sfuggita.
15. systemd-cat
systemd-cat
è un comando che consente di inviare l’output di qualsiasi comando o programma direttamente al journal di systemd. Ciò può essere utile per acquisire l’output di processi o script di breve durata nel journal systemd, semplificando l’analisi, il filtraggio e la ricerca di voci di registro relative a tali processi. Usando systemd-cat
, puoi reindirizzare l’output di un comando o di uno script direttamente al journal, oppure puoi eseguire un comando con systemd-cat
come wrapper. Questo strumento supporta anche l’aggiunta di metadati personalizzati, come la priorità del registro o l’identificatore, alle voci di registro acquisite, che possono aiutare con l’organizzazione e il filtraggio dei registri nel journal. systemd-cat
fornisce un modo semplice e conveniente per integrare la registrazione personalizzata e l’output da varie fonti nel journal systemd centralizzato, consentendo una migliore gestione e analisi dei registri.
systemd-cat [command]
: Esegue il comando specificato e inoltra il suo output al journal systemd.
16. systemd-notify
systemd-notify
è un comando che consente ai servizi di inviare aggiornamenti di stato, rapporti sullo stato di avanzamento o altre notifiche al sistema systemd. È particolarmente utile per implementare protocolli di prontezza del servizio, segnalare modifiche allo stato del servizio o segnalare informazioni sullo stato specifiche del servizio. I servizi possono utilizzare systemd-notify
per inviare messaggi a systemd su un canale di comunicazione chiamato socket di notifica. Questa utility supporta vari tipi di messaggi, come READY, STATUS, ERRNO, MAINPID e WATCHDOG. Ad esempio, un servizio può utilizzare il messaggio READY per informare systemd che è stato avviato correttamente ed è pronto per elaborare le richieste. Usandosystemd-notify
, i servizi possono comunicare con systemd in modo più efficace, garantendo una corretta gestione, monitoraggio e coordinamento dei servizi. Questa utility è particolarmente utile per i servizi a esecuzione prolungata o per quelli con procedure di inizializzazione complesse che devono segnalare il proprio stato a systemd.
systemd-notify --ready
: Invia una notifica a systemd indicando che il servizio è pronto.
17. systemd-tmpfiles
systemd-tmpfiles
è uno strumento a riga di comando e un sistema di configurazione associato per la gestione di file e directory temporanei su Linux abilitato per systemd. Fornisce un modo standardizzato e flessibile per creare, pulire e rimuovere directory e file temporanei durante l’avvio, l’arresto del sistema o su base periodica. systemd-tmpfiles
utilizza i file di configurazione situati nelle directory , e per definire le regole e le azioni per la gestione dei file /usr/lib/tmpfiles.d/
temporanei /etc/tmpfiles.d/
. /run/tmpfiles.d/
Questi file di configurazione contengono direttive che specificano i percorsi dei file, le autorizzazioni di accesso, la proprietà e altri attributi, nonché le politiche di pulizia, come i limiti di durata e dimensioni.systemd-tmpfiles
di solito viene eseguito automaticamente da systemd in varie fasi del ciclo di vita del sistema, ma può anche essere richiamato manualmente per applicare le azioni specificate, come la creazione o la pulizia di file e directory temporanei. Utilizzando systemd-tmpfiles
, è possibile garantire una corretta gestione e pulizia di directory e file temporanei, contribuendo a mantenere un sistema pulito e organizzato, riducendo il rischio di fughe di dati e risparmiando spazio su disco.
systemd-tmpfiles --create
: Crea file e directory volatili come definito nei file di configurazione.systemd-tmpfiles --clean
: Elimina i file e le directory vecchi e scaduti come definito nei file di configurazione.
18. systemd-run
systemd-run
è un comando che consente di eseguire un comando o uno script come servizio systemd transitorio o unità di ambito su sistemi Linux abilitati per systemd. Le unità transitorie vengono create dinamicamente in fase di esecuzione e rimosse automaticamente quando non sono più necessarie o quando il sistema viene riavviato. Questo comando fornisce un’ampia gamma di opzioni per la configurazione delle unità create, inclusi i limiti delle risorse, le dipendenze, le variabili di ambiente e i criteri di riavvio, tra gli altri.
systemd-run --unit=[name] [command]
: esegue il comando specificato come servizio transitorio con il nome specificato.systemd-run --scope [command]
: esegue il comando specificato come servizio temporaneo in un nuovo ambito.
19. systemd-mount
systemd-mount
è un’utilità della riga di comando che consente di montare e gestire i file system utilizzando il sistema systemd. Fornisce un modo conveniente per montare i file system come unità .mount transitorie, che vengono gestite automaticamente da systemd. Il comando supporta anche varie opzioni per la configurazione dei file system montati, come le opzioni di montaggio, i timeout e le dipendenze su altre unità systemd.
systemd-mount [device] [path]
: monta il dispositivo specificato nel percorso specificato, creando un’unità di montaggio in systemd.systemd-mount --umount [path]
: Smonta il percorso specificato, arrestando l’unità di montaggio systemd associata.
20. systemd-ask-password
systemd-ask-password
consente di interrogare le password o le passphrase degli utenti in modo sicuro e coerente su Linux abilitato per systemd. Questo comando viene in genere utilizzato da servizi di sistema o script che richiedono l’autenticazione dell’utente o l’input segreto, come il montaggio di file system crittografati o lo sblocco di archivi di chiavi sicuri. systemd-ask-password
funziona visualizzando una richiesta di password all’utente, sulla console, in una finestra di dialogo grafica o tramite una connessione remota, a seconda dell’ambiente e degli agenti password disponibili. La password o la passphrase inserita viene quindi trasmessa in modo sicuro al servizio o allo script richiedente.
systemd-ask-password
: richiede all’utente una password o una passphrase con il messaggio specificato.
21. systemd-inhibit
systemd-inhibit
consente di eseguire un programma o uno script bloccando temporaneamente operazioni di sistema specifiche, come l’arresto, il riavvio o la sospensione. È particolarmente utile per garantire che le attività critiche o le operazioni di manutenzione non vengano interrotte da un improvviso cambiamento di stato del sistema. systemd-inhibit
funziona creando un “blocco inibitore” che impedisce l’esecuzione delle operazioni di sistema specificate mentre il programma o lo script è in esecuzione. È possibile specificare il tipo di blocco inibitore e un motivo descrittivo per il suo utilizzo. I tipi comuni di blocchi includono “arresto”, “sospensione”, “inattivo” e “sospensione”.
systemd-inhibit --what=[operation] [command]
: esegue il comando specificato mentre inibisce l’operazione specificata (ad esempio, spegnimento, sospensione, inattività).
22. systemd-dissect
systemd-dissect
è uno strumento da riga di comando che fornisce la funzionalità per ispezionare e analizzare le immagini del disco e gli alberi del file system. È particolarmente utile per esaminare le immagini del disco che contengono i file del sistema operativo, come quelli utilizzati per i contenitori, le macchine virtuali o l’installazione del sistema. Usando systemd-dissect
, puoi ispezionare e analizzare facilmente le immagini del disco e gli alberi del file system, che possono essere utili quando lavori con contenitori, macchine virtuali o crei immagini di sistema personalizzate. Fornisce un modo conveniente per esaminare il contenuto e la struttura delle immagini del disco senza doverle montare manualmente o utilizzare più strumenti per attività diverse.
systemd-dissect [image]
: mostra un breve riepilogo del contenuto del disco o dell’immagine del sistema operativo specificato.systemd-dissect --mount [image]
: monta il disco o l’immagine del sistema operativo specificati, mostrando un riepilogo del suo contenuto.
23. systemd-resolve
systemd-resolve
è un comando che fa parte del systemd-resolved
servizio, che fornisce la risoluzione dei nomi di rete e la memorizzazione nella cache su Linux abilitato per systemd. Il comando consente di interrogare e gestire il resolver DNS e la cache forniti da systemd-resolved
.
systemd-resolve [hostname]
: risolve il nome host specificato in un indirizzo IP utilizzando il resolver DNS di sistema.systemd-resolve --status
: mostra lo stato corrente del resolver DNS del sistema, inclusi i server DNS configurati e i domini di ricerca.
24. systemd-firstboot
systemd-firstboot
è un comando che consente di inizializzare varie impostazioni di sistema di base su Linux abilitato per systemd. Viene in genere utilizzato durante il primo avvio di un sistema appena installato o durante la creazione di immagini di sistema personalizzate per la distribuzione. L’utilità può essere utilizzata sia in modalità interattiva che non interattiva. In modalità interattiva, systemd-firstboot
richiede all’utente le informazioni richieste, mentre in modalità non interattiva, le impostazioni vengono fornite tramite opzioni della riga di comando o file di configurazione.
systemd-firstboot --setup-machine-id
: imposta l’ID macchina al primo avvio.systemd-firstboot --setup-root-password
: imposta la password di root al primo avvio.
Questi sono alcuni dei systemd
i comandi più utili per gestire vari aspetti del tuo sistema Linux. Ricorda che la maggior parte di questi comandi richiede privilegi amministrativi, quindi anteponi sudo
se necessario.