GNU/Linux >> Linux Esercitazione >  >> Linux

9 cose da fare nei tuoi primi 10 minuti su un server Linux

Quando eseguo il test del software su Linux (una parte normale del mio lavoro), ho bisogno di utilizzare più server con varie architetture che eseguono Linux. Fornisco le macchine, installo i pacchetti software richiesti, eseguo i miei test, raccolgo i risultati e riporto la macchina al pool in modo che altri possano usarla per i loro test.

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

Dato che lo faccio così spesso (anche più volte al giorno), i miei primi 10 minuti su un server Linux sono diventati un rituale quotidiano. Quando accedo per la prima volta a un server Linux, cerco alcune cose usando i comandi per raccogliere le informazioni di cui ho bisogno. Esaminerò il mio processo in questo articolo, ma tieni presente che, nella maggior parte dei casi, fornirò solo il nome del comando, quindi dovrai identificare i flag specifici per quei comandi per ottenere le informazioni di cui hai bisogno. Leggere le pagine man per i comandi è un buon punto di partenza.

1. Primo contatto

Non appena accedo a un server, la prima cosa che faccio è controllare se ha il sistema operativo, il kernel e l'architettura hardware necessari per i test che eseguirò. Controllo spesso da quanto tempo un server è attivo e funzionante. Anche se questo non ha molta importanza per un sistema di test perché verrà riavviato più volte, trovo comunque utili queste informazioni.

Utilizzare i seguenti comandi per ottenere queste informazioni. Uso principalmente Red Hat Linux per i test, quindi se stai usando un'altra distribuzione Linux, usa *-release nel nome del file invece di redhat-release :

cat /etc/redhat-release
uname -a
hostnamectl
uptime

2. C'è qualcun altro a bordo?

Una volta che so che la macchina soddisfa le mie esigenze di test, devo assicurarmi che nessun altro sia connesso al sistema contemporaneamente eseguendo i propri test. Anche se è altamente improbabile, dato che il sistema di provisioning si occupa di questo per me, è comunque bene controllare di tanto in tanto, specialmente se è la prima volta che accedo a un server. Controllo anche se ci sono altri utenti (diversi da root) che possono accedere al sistema.

Utilizzare i seguenti comandi per trovare queste informazioni. L'ultimo comando cerca gli utenti in /etc/passwd file che hanno accesso alla shell; salta altri servizi nel file che non hanno accesso alla shell o hanno una shell impostata su nologin :

who
who -Hu
grep sh$ /etc/passwd

3. Macchina fisica o virtuale

Ora che so di avere la macchina tutta per me, devo identificare se si tratta di una macchina fisica o di una macchina virtuale (VM). Se provvedessi da solo alla macchina, potrei essere sicuro di avere ciò che ho chiesto. Tuttavia, se stai utilizzando una macchina di cui non hai eseguito il provisioning, dovresti verificare se la macchina è fisica o virtuale.

Utilizzare i seguenti comandi per identificare queste informazioni. Se si tratta di un sistema fisico, vedrai il nome del fornitore (ad es. HP, IBM, ecc.) e la marca e il modello del server; mentre, in una macchina virtuale, dovresti vedere KVM, VirtualBox, ecc., a seconda del software di virtualizzazione utilizzato per creare la VM:

dmidecode -s system-manufacturer
dmidecode -s system-product-name
lshw -c system | grep product | head -1
cat /sys/class/dmi/id/product_name
cat /sys/class/dmi/id/sys_vendor

4. Hardware

Poiché test spesso l'hardware connesso alla macchina Linux, di solito lavoro con server fisici, non con macchine virtuali. Su una macchina fisica, il mio prossimo passo è identificare le capacità hardware del server, ad esempio, che tipo di CPU è in esecuzione, quanti core ha, quali flag sono abilitati e quanta memoria è disponibile per l'esecuzione dei test. Se eseguo test di rete, controllo il tipo e la capacità dell'Ethernet o di altri dispositivi di rete collegati al server.

Utilizzare i seguenti comandi per visualizzare l'hardware connesso a un server Linux. Alcuni dei comandi potrebbero essere deprecati nelle versioni più recenti del sistema operativo, ma puoi comunque installarli da yum repository o passare ai loro nuovi comandi equivalenti:

lscpu or cat /proc/cpuinfo
lsmem or cat /proc/meminfo
ifconfig -a
ethtool <devname>
lshw
lspci
dmidecode

5. Software installato

Il test del software richiede sempre l'installazione di pacchetti dipendenti aggiuntivi, librerie, ecc. Tuttavia, prima di installare qualsiasi cosa, controllo cosa è già installato (inclusa quale versione è), nonché quali repository sono configurati, quindi so da dove proviene il software e posso eseguire il debug di eventuali problemi di installazione del pacchetto.

Utilizzare i seguenti comandi per identificare quale software è installato:

rpm -qa 
rpm -qa | grep <pkgname>
rpm -qi <pkgname>
yum repolist
yum repoinfo
yum install <pkgname>
ls -l /etc/yum.repos.d/

6. Esecuzione di processi e servizi

Dopo aver controllato il software installato, è naturale verificare quali processi sono in esecuzione sul sistema. Questo è fondamentale quando si esegue un test delle prestazioni su un sistema:se un processo in esecuzione, un demone, un software di test, ecc. sta consumando la maggior parte della CPU/RAM, ha senso interrompere quel processo prima di eseguire i test. Questo controlla anche che i processi oi demoni richiesti dal test siano attivi e in esecuzione. Ad esempio, se i test richiedono l'esecuzione di httpd, il servizio per avviare il demone potrebbe non essere stato eseguito anche se il pacchetto è installato.

Utilizza i seguenti comandi per identificare i processi in esecuzione e i servizi abilitati sul tuo sistema:

pstree -pa 1
ps -ef
ps auxf
systemctl

7. Connessioni di rete

Le macchine odierne sono fortemente collegate in rete e devono comunicare con altre macchine o servizi sulla rete. Identifico quali porte sono aperte sul server, se ci sono connessioni dalla rete alla macchina di prova, se è abilitato un firewall e, in tal caso, sta bloccando alcune porte e con quali server DNS comunica la macchina.

Utilizzare i seguenti comandi per identificare le informazioni relative ai servizi di rete. Se un comando deprecato non è disponibile, installalo da un repository yum o utilizza il comando equivalente più recente:

netstat -tulpn
netstat -anp
lsof -i
ss
iptables -L -n
cat /etc/resolv.conf

8. kernel

Quando si esegue il test dei sistemi, trovo utile conoscere le informazioni relative al kernel, come la versione del kernel e quali moduli del kernel vengono caricati. Elenco anche tutti i parametri del kernel sintonizzabili e ciò su cui sono impostati e controllo le opzioni utilizzate all'avvio del kernel in esecuzione.

Utilizzare i seguenti comandi per identificare queste informazioni:

uname -r
cat /proc/cmdline
lsmod
modinfo <module>
sysctl -a
cat /boot/grub2/grub.cfg

9. Registri

A questo punto, ho una buona idea del server, incluso quale software è installato e quali processi sono in esecuzione. Un'altra cosa a cui non posso sfuggire sono i file di registro:devo sapere dove controllare le informazioni che vengono continuamente aggiornate.

Usa i seguenti comandi per vedere i log del tuo sistema:

dmesg
tail -f /var/log/messages
journalctl

Passaggi successivi

Mentre i comandi e le utilità cambieranno, le informazioni sottostanti che mostrano rimangono più o meno le stesse. Hai bisogno di una visione di alto livello delle informazioni che stai cercando e in quale categoria rientrano prima di poterti concentrare su quali comandi padroneggiare.

Poiché Linux salva la maggior parte delle informazioni nei file, questi comandi fondamentalmente leggono le informazioni dai file e le presentano in un modo di facile comprensione. Un buon passaggio successivo consiste nell'identificare i file utilizzati da ciascun comando per ottenere le informazioni da visualizzare. Un suggerimento per trovare queste informazioni è la strace comando.


Linux
  1. Visualizza le connessioni di rete del tuo server Linux con netstat

  2. Configura il tuo server OpenVPN su Linux

  3. Installa OpenVPN sul tuo PC Linux

  4. 7 passaggi per proteggere il tuo server Linux

  5. Come monitorare il tuo server Linux?

Come installare KernelCare sul tuo server Linux

Come controllare il carico del server nel sistema Linux

12 cose da fare dopo aver installato un server Linux

Come controllare il tempo di attività del tuo server Linux

Come configurare un demone Rsync sul tuo server Linux

Come configurare un firewall sul tuo server Linux