I sistemi operativi Linux offrono innumerevoli comandi e utilità di sysadmin, che aiutano utenti, sviluppatori e ingegneri nelle attività di amministrazione del sistema. Ad esempio, i comandi e i pacchetti di sysadmin possono aiutare gli utenti a ottimizzare o gestire le applicazioni e fornire preziose informazioni sulla risoluzione dei problemi agli amministratori di rete o agli amministratori di sistema.
Questi comandi si applicano ad ambienti di sviluppo Linux, macchine virtuali, container e bare metal.
I migliori comandi Linux per sysadmin
Questo articolo esamina alcuni comandi di base di sysadmin usati frequentemente per l'amministrazione del sistema Linux con alcuni esempi pratici.
1. Arricciatura
Curl è uno strumento da riga di comando per trasferire dati da o verso un server. Supporta protocolli come FTP, FTPS, HTTP, HTTPS, IMAP, POP3, POP3S, RTMP, SMBS, SMTP, SMTPS, TELNET, ecc. Puoi usarlo per testare la connettività o un endpoint a un altro servizio come un database.
Risolvere un errore HTTP 500:
$ curl -I -s my_app:5000
Includi l'opzione -I per mostrare le informazioni sull'intestazione e l'opzione -s per silenziare il corpo della risposta.
Controlla l'endpoint del database dal tuo localhost:
$ curl -I -s my_database:27017 HTTP/1.0 200 OK
200 indica che la tua connessione sembra a posto.
$ curl my_database:27017 curl: (6) Couldn't resolve host 'database'
L'errore indica che l'app non è in grado di risolvere il database perché l'URL del database non è disponibile o perché il sistema host, il contenitore o la macchina virtuale non dispone di un server dei nomi per risolvere il nome host.
2. ls
Ls elenca i file in una directory o può aiutarti a esaminarne i permessi. Puoi anche usarlo in un'infrastruttura di container per determinare la directory e i file dell'immagine del container. Se non riesci a eseguire l'applicazione a causa di un problema con i permessi, controlla i permessi usando ls -l, quindi emetti i permessi del file appropriati usando chmod. Puoi anche combinarlo con flag come ls -a per elencare tutti i file o ls -R per elencare file e directory in modo ricorsivo.
[tuts@fosslinux dist]$ ls -l -rwxr-xr-x. 1 tuts tuts 7292656 Jun 17 12:54 hello
[tuts@fosslinux hello]$ ls -R
3. chmod
Utilizzare il comando chmod per impostare i permessi su un file binario o un'applicazione. Per prima cosa, usa il comando ls per controllare i permessi dei tuoi file, quindi rilascia i permessi appropriati.
Controlla i permessi dei file con ls -l:
[tuts@fosslinux ~]$ ls -l -rw-rw-r--. 1 tuts tuts 6 Jun 24 18:05 dingdong.py
Assegna le autorizzazioni di esecuzione al file dingdong.py per consentire agli utenti di eseguire.
[tuts@fosslinux ~]$ chmod +x dingdong.py [tuts@fosslinux ~] ls -l -rwxrwxr-x. 1 tuts tuts 6 Jun 24 18:05 dingdong.py
4. coda
Tail mostra l'ultimo contenuto di un file. È utile se si desidera controllare i registri delle richieste recenti. Ad esempio, inserisci i log più recenti sul tuo server.
$ sudo tail -f /var/log/httpd/error_log
L'opzione -f restituisce le righe di registro man mano che vengono scritte nel file. Ha uno script in background che accede all'endpoint ogni pochi secondi e il registro registra la richiesta. Puoi anche accodare un numero specifico di righe del file con l'opzione -n.
$ sudo tail -n 3 /var/log/httpd/error_log
5. grep
Puoi usare grep per cercare i file per cercare modelli specifici ed evidenziare le righe rilevanti nell'output di un altro comando Linux. Ad esempio, per cercare la riga "CRITICAL" in /var/log/dnf.log:
[tuts@fosslinux ~]$ grep CRITICAL Error /var/log/dnf.log
Usa * per cercare in tutti i file in una directory e -r (ricorsivo) flag per includere la ricerca nelle sottodirectory.
cd /var/log/ $ grep -r CRITICAL Error *
Puoi anche isolare l'output nel comando grep eseguendo il piping del risultato:
$ cat dnf.log | grep CRITICAL Error
6. ps
Il comando ps viene utilizzato per esaminare gli ID di processo e mostrare lo stato dei processi in esecuzione. Puoi utilizzare questo comando per determinare tutte le applicazioni in esecuzione.
[tuts@fosslinux log]$ ps -ef
Puoi anche combinarlo con i comandi pipe e grep
[tuts@fosslinux log]$ ps -ef | grep httpd
Usa il flag -u per visualizzare tutti i processi di proprietà del nome utente:
[tuts@fosslinux log]$ ps -u username
Utilizzare il flag aux per visualizzare tutti i processi con informazioni dettagliate come PID, percentuale di tempo CPU utilizzato dal processo (%CPU), percentuale di RAM (%MEM), memoria virtuale utilizzata (VSZ), memoria fisica (RSS), e così via.
7. in alto
Il comando in alto visualizza un elenco continuamente aggiornato dei processi di sistema in ordine di attività del processo. Puoi usarlo per determinare quali processi sono in esecuzione e quanta memoria e CPU consumano.
Le informazioni visualizzate sono costituite da un riepilogo del sistema e dalla tabella dei processi ordinati per attività della CPU. Alcune informazioni includono tempo di attività del sistema, carico medio, proprietario del processo (USER), percentuale di tempo CPU utilizzato dal processo (%CPU), percentuale di RAM utilizzata dal processo (%MEM), tempo totale CPU utilizzato dal processo (TIME[+ ]), e così via.
Puoi anche emettere diversi comandi mentre è in esecuzione il comando principale. Ad esempio, premere h o ? per visualizzare i comandi che puoi emettere, k per terminare un processo, z per i colori globali o q per uscire dall'inizio.
8. ambiente
Il comando env viene utilizzato per impostare o visualizzare le variabili di ambiente. Usa env per verificare se un ambiente errato impedisce l'esecuzione della tua applicazione.
$ env PYTHON_PIP_VERSION=20.2.2 HOME=/root DB_NAME=my_database PATH=/usr/local/bin:/usr/local/sbin LANG=C.UTF-8 PYTHON_VERSION=3.9.5
9. netstat
netstat mostra lo stato della rete del sistema o dell'infrastruttura. Puoi usarlo per visualizzare le porte di rete e le connessioni in entrata. Puoi combinarlo con altre opzioni come protocollo, porta o processo per dimostrare le porte correnti utilizzate dalle tue applicazioni di sistema.
# netstat -tulpn
10. ip/ifconfig
Il comando ip sostituisce ifconfig in alcune distribuzioni Linux e può configurare o visualizzare interfacce di rete e modificare indirizzi IP, oggetti vicini e percorsi. Puoi anche usarlo per verificare l'indirizzo IP del tuo host o container.
Usa "ip a" (indirizzo) per visualizzare le informazioni su tutte le interfacce di rete:
[tuts@fosslinux]$ ip a
Usa il comando "ip link set device_name" per portare un'interfaccia su o giù:
[tuts@fosslinux]$ ip link set eth0 up #bring up [tuts@fosslinux]$ ip link set eth0 down #bring down
11. df
Utilizzare il comando df (visualizza spazio libero su disco) per verificare le dimensioni del filesystem e risolvere i problemi di spazio su disco. È utile negli scenari in cui si riceve un messaggio di errore che segnala la mancanza di spazio libero nel sistema su un host contenitore.
[tuts@fosslinux ~]$ df -h
Il flag -h mostra le informazioni in un formato leggibile dall'uomo (ovvero MB e GB). Per impostazione predefinita, il comando df visualizza i risultati per ogni utente nella directory principale. Tuttavia, puoi limitare la visualizzazione a una directory specifica (ad esempio, df -h/tmp)
Usa il flag -x per ignorare qualsiasi file system:
[tuts@fosslinux ]$ df -h -x tmpfs
Usa il flag -t per elencare solo un tipo di filesystem specifico. Ad esempio, filesystem btrfs di sola visualizzazione:
[tuts@fosslinux ]$ df -h -t btrfs
Usa il flag –total per mostrare i totali generali:
[tuts@fosslinux ]$ df -h -t btrfs --total
12. da
Utilizzare il comando du per visualizzare informazioni dettagliate su quali file utilizzano lo spazio su disco in una directory. Lo trovo utile per determinare quali registri occupano più spazio. Ad esempio, esegui il comando du con il flag -h (leggibile dall'uomo) e -s (riepilogo):
[tuts@fosslinux ~]$ sudo du -h /var/log
[tuts@fosslinux ~]$ sudo du -hs /var/log 1.5G /var/log
13. dig/nslookup
dig è un ottimo strumento da riga di comando per eseguire query DNS. Viene utilizzato nel seguente formato:
dig <DNS server> <domain> <query-type>
Il
Per visualizzare il record A per bing.com:
[tuts@fosslinux ~]$ dig bing.com +short 13.107.21.200 204.79.197.200
Per visualizzare il record MX di bing.com:
[tuts@fosslinux ~]$ dig bing.com MX +short 10 bing-com.mail.protection.outlook.com.
14. firewall-cmd
Firewall-cmd è un front-end intuitivo per nftables e viene fornito con molte distribuzioni. Consente agli utenti di impostare regole per regolare il traffico di rete in entrata e in uscita sul computer. Queste regole possono essere raggruppate in zone che definiscono i livelli di attendibilità della sicurezza della rete di interfacce di rete, servizi o connessioni. Funziona con IPv4, IPv6, set IP e bridge Ethernet e presenta una sintassi dei comandi semplice e intuitiva.
Per visualizzare la zona firewalld corrente:
[tuts@fosslinux ~]$ sudo firewall-cmd --get-active-zones libvirt interfaces: virbr0
Aggiungi il flag –list-all per visualizzare ciò che ogni zona consente:
[tuts@fosslinux ~]$ sudo firewall-cmd --zone libvirt --list-all
Per aggiungere un servizio:
$ sudo firewall-cmd --add-service http --permanent $ sudo firewall-cmd –reload
Se stai iniziando con la sicurezza di rete, puoi leggere la nostra guida completa sulla gestione della sicurezza di rete con firewalld per ulteriori esempi e trucchi.
15. systemctl
systemd è disponibile nella maggior parte delle distribuzioni Linux, rendendo disponibile il comando systemctl per gestire i servizi e le unità systemd.
Per avviare un servizio:
[tuts@fosslinux ~]$ sudo systemctl start httpd
Per interrompere un servizio:
[tuts@fosslinux ~]$ sudo systemctl stop httpd
Per controllare lo stato del servizio.
16. uccidi e uccidi tutti
Puoi usare i comandi kill e killall per terminare un processo in fuga o liberare alcune risorse di sistema. Puoi inviare il segnale SIGTERM (-15) o SIGKILL (-9) a un processo per terminare il processo. SIGTERM (soft kill) consente il completamento di un processo di sistema prima che venga terminato. SIGKILL termina immediatamente il processo.
Usa kill con il flag -l per mostrare tutti i segnali che puoi inviare a un processo.
[tuts@fosslinux ~]$ kill -l
Per terminare un processo, determina il suo ID processo, quindi invia il comando kill.
[tuts@fosslinux ~]$ ps aux|grep httpd
Per terminare il processo httpd con ID processo 1525:
[tuts@fosslinux ~]$ sudo kill -9 1525
Usa killall per uccidere un programma per nome. Uccide il processo padre e tutti i processi figlio.
[tuts@fosslinux ~]$ sudo killall httpd
Nota:usa i comandi kill e killall con cautela in quanto potrebbero interrompere o lasciare il sistema in uno stato instabile.
17. storia
Il comando cronologia mostra una cronologia di tutti i comandi utilizzati in una sessione. Ad esempio, puoi utilizzarlo per registrare i comandi che hai utilizzato per risolvere i problemi di un'applicazione o del tuo sistema.
[tuts@fosslinux ~]$ history 790 sudo firewall-cmd --get-active-zones 791 sudo firewall-cmd --zone libvirt --list-all 792 history
Utilizzo ! con un numero di comando per rieseguirlo senza doverlo riscrivere.
[tuts@fosslinux ~]$ !790 sudo firewall-cmd --get-active-zones libvirt interfaces: virbr0
Conclusione
Comprendere alcuni comandi di base dell'amministratore di sistema può aiutarti a risolvere i problemi delle applicazioni, risolvere i problemi, mantenere i sistemi in esecuzione in modo ottimale, garantire la sicurezza del sistema o persino aiutarti a comunicare in modo efficace con gli amministratori di sistema per risolvere i problemi nella tua infrastruttura.
Spero che questi comandi ti siano utili!