GNU/Linux >> Linux Esercitazione >  >> Linux

I migliori comandi Linux per gli amministratori di sistema

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 rappresenta il nome del server DNS, è il nome di dominio e è il nome del record (A, MX, NS SOA) che desideri conoscere. Puoi anche utilizzare il flag +short per eliminare l'output dettagliato.
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!


Linux
  1. 10 comandi Linux per la diagnostica di rete

  2. Formazione e certificazione per amministratori di sistema Linux

  3. I 10 migliori tutorial per gli amministratori Linux

  4. 3 utili comandi Linux per gli amministratori di sistema

  5. I migliori comandi di base di Linux per principianti

I 15 migliori strumenti di chimica per il sistema Linux

I 15 migliori strumenti di biologia per il sistema Linux

I 15 migliori software di traduzione per sistemi Linux

I 10 migliori strumenti per la selezione dei colori per il sistema Linux

I 10 migliori strumenti di scansione per il sistema Linux

I 10 migliori strumenti meteo per il sistema Linux