20 comandi Linux per l’amministratore di sistema

Linux offre innumerevoli comandi e utilità, che consentono di eseguire le attività di amministrazione del sistema in modo rapido ed efficiente.

Il tuo lavoro come amministratore di sistema include l’installazione e l’esecuzione di software, il controllo dell’accesso, il monitoraggio, la garanzia della disponibilità, i backup, il ripristino dei backup e, naturalmente, la lotta agli incendi. 😜

In questo articolo, esaminiamo alcuni dei comandi usati frequentemente dagli amministratori di sistema Linux nel loro lavoro quotidiano.

il tuo nome

Utilizzare il comando uname con il flag -a per stampare le informazioni di sistema. Questo comando ti mostrerà il nome del kernel, la versione del kernel, la versione del kernel, il nome host, il tipo di processore e le informazioni sulla tua piattaforma hardware.

[email protected]:~$ uname -a
Linux ubuntu18 5.3.0-1028-azure #29~18.04.1-Ubuntu SMP Fri Jun 5 14:32:34 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Ecco cosa significa:

kernel name:Linux 
hostname: ubuntu18 
kernel release: 5.3.0-1028-azure 
kernel version: #29~18.04.1-Ubuntu SMP Fri Jun 5 14:32:34 UTC 2020 
machine hardware name: x86_64 
processor: x86_64 
hardware-platform: x86_64 
operating system: GNU/Linux

df

Utilizzare il comando df per verificare la dimensione del filesystem e lo spazio disponibile. Questo comando utilizzato da solo mostra l’output in blocchi da 1K.

[email protected]:~$ df 
Filesystem     1K-blocks    Used Available Use% Mounted on
udev              437208       0    437208   0% /dev
tmpfs              91100     692     90408   1% /run
/dev/sda1       30309264 2383952  27908928   8% /
....

L’opzione -h mostra l’output in un formato leggibile, ovvero in MB e GB.

[email protected]:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            427M     0  427M   0% /dev
tmpfs            89M  692K   89M   1% /run
/dev/sda1        29G  2.3G   27G   8% /
tmpfs           445M     0  445M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           445M     0  445M   0% /sys/fs/cgroup
/dev/sda15      105M  3.6M  101M   4% /boot/efi
/dev/sdb1       3.9G   16M  3.7G   1% /mnt
tmpfs            89M     0   89M   0% /run/user/1001 

Per ignorare qualsiasi file system, ad esempio tmpfs, che è per un output più pulito, utilizzare flag -x

[email protected]:~$ df -h -x tmpfs
Filesystem      Size  Used Avail Use% Mounted on
udev            427M     0  427M   0% /dev
/dev/sda1        29G  2.3G   27G   8% /
/dev/sda15      105M  3.6M  101M   4% /boot/efi
/dev/sdb1       3.9G   16M  3.7G   1% /mnt

Per elencare solo un tipo di filesystem specifico, usa -t flag. ad esempio, per visualizzare solo il filesystem ext4:

[email protected]:~$ df -h -t ext4
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        29G  2.3G   27G   8% /
/dev/sdb1       3.9G   16M  3.7G   1% /mnt

L’utilizzo dell’indicatore del totale aggiungerà una riga che mostra i totali generali:

[email protected]:~$ df -h -t ext4 --total
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        29G  2.3G   27G   8% /
/dev/sdb1       3.9G   16M  3.7G   1% /mnt
<b>total            33G  2.3G   31G   8% -</b>

du

Per controllare l’utilizzo dello spazio su disco in una directory, utilizzare du comando. Ad esempio per vedere l’utilizzo dello spazio su disco nella directory /var/log. Usa il flag -h per il formato leggibile.

[email protected]:~$ sudo du -h /var/log
24K	/var/log/Microsoft/Azure/NetworkWatcherAgent/Logs
28K	/var/log/Microsoft/Azure/NetworkWatcherAgent
32K	/var/log/Microsoft/Azure
36K	/var/log/Microsoft
60K	/var/log/apt
4.0K	/var/log/samba
177M	/var/log/journal/0f4f926f583b4691af7de11025b19ff6
177M	/var/log/journal
...
204M	/var/log

Per visualizzare solo l’utilizzo totale, utilizzare solo il flag -s (riepilogo).

[email protected]:~$ sudo du -hs /var/log
204M	/var/log

gratuito

Usa il comando free per vedere la memoria di sistema totale, utilizzata e libera. Usa il flag -h per il formato leggibile.

ubuntu[email protected]:~$ free -h
              total        used        free      shared  buff/cache   available
Mem:           889M        272M        100M        712K        517M        443M
Swap:            0B          0B          0B
total - Total installed memory (memtotal + swaptotal)
used - used memory
free - unused memory (memfree + swapfree)
buffers - memory used by kernel buffers
cache - memory used by page caches
buff/cache - sum of buffers and cache
available - Estimated memory available for starting new applications, without swapping

ps

Utilizzare ps per visualizzare le informazioni sullo stato dei processi in esecuzione sul sistema. Per vedere tutti i processi di proprietà dell’utente ubuntu, usa il flag -u con il nome utente:

[email protected]:~$ ps -u ubuntu
   PID TTY          TIME CMD
  7804 ?        00:00:00 systemd
  7805 ?        00:00:00 (sd-pam)
  7940 ?        00:00:00 sshd
  7941 pts/0    00:00:00 bash
  8111 ?        00:00:00 sshd
  8112 pts/1    00:00:00 bash
 13868 ?        00:00:00 sshd
 13869 pts/2    00:00:00 bash
 13885 pts/0    00:00:00 man
 13895 pts/0    00:00:00 pager
 18111 pts/2    00:00:00 man
 18121 pts/2    00:00:00 pager
 18485 pts/1    00:00:00 ps

Per visualizzare tutti i processi, esegui ps con aux flag:

[email protected]:~$ ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.7 160076  7020 ?        Ss   Jun29   0:34 /sbin/init
root          2  0.0  0.0      0     0 ?        S    Jun29   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        I<   Jun29   0:00 [rcu_gp]
root          4  0.0  0.0      0     0 ?        I<   Jun29   0:00 [rcu_par_gp]
root          6  0.0  0.0      0     0 ?        I<   Jun29   0:00 [kworker/0:0H-kb]
....

dove

Intestazione
Significato
PID
Numero di identificazione del processo
%PROCESSORE
Percentuale di tempo CPU utilizzato dal processo
%MEM
Percentuale di processo RAM in uso
VSZ
Memoria virtuale utilizzata in KB
RSS
Memoria fisica utilizzata dal processo in KB
TTY
Terminale associato al processo
STATISTICA
R – In esecuzione o pronto per l’esecuzione, S – Inattivo, I – Inattivo, T – Arrestato, Z – Zombie, D – In attesa di I/O su disco, X – Inattivo, W – Scambiato, N – Processo a bassa priorità, < – Processo ad alta priorità

superiore

Mentre il comando ps mostra un’istantanea dello stato dei processi in qualsiasi momento, top mostra un elenco di processi di sistema in aggiornamento continuo (ogni tre secondi, per impostazione predefinita) in ordine di attività del processo.

  Come giocare a Nioh 2 su Linux

L’output del comando in alto è costituito da due parti principali: il riepilogo del sistema in alto e la tabella dei processi ordinati per attività della CPU.

top - 14:25:32 up 44 days, 11:37,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 114 total,   1 running,  59 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   910992 total,   101208 free,   274712 used,   535072 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   458492 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND    
 50497 ubuntu    20   0   44528   3944   3368 R  0.7  0.4   0:00.15 top        
     1 root      20   0  160076   7020   4400 S  0.0  0.8   0:34.85 systemd    
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.08 kthreadd   
     3 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 rcu_gp     
     4 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 rcu_par_gp 
     6 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 kworker/0:+
     9 root       0 -20       0      0      0 I  0.0  0.0   0:00.00 mm_percpu_+

Alcuni dei campi nel riepilogo del sistema sono i seguenti:

su
Tempo di attività. Tempo trascorso dall’ultimo avvio della macchina.
carico medio
La media del carico si riferisce al numero di processi in attesa di essere eseguiti, un valore inferiore a 1,0 indica che la macchina non è occupata. Ci sono 3 valori. Il primo è la media degli ultimi 60 secondi, il secondo è la media degli ultimi 5 minuti e il terzo mostra la media degli ultimi 15 minuti.
%Cpu(s)

Questa riga descrive le attività della CPU.
0,3 noi, utente
0,3% La CPU viene utilizzata per i processi utente.
0,0 sy, sistema
0,0% La CPU viene utilizzata per i processi di sistema.
0,0 ni, bello
0,0% La CPU viene utilizzata da processi a bassa priorità (carino).
99.7 id, inattivo
Il 99,7% della CPU è inattiva
0,0 wa, IO-attesa
0,0% La CPU è in attesa di I/O
0.0 ciao
tempo dedicato agli interrupt hardware
0,0 si
tempo dedicato agli interrupt del software
0,0 p
pietra del tempo da questa macchina virtuale dall’hypervisor

I campi della tabella di processo sono i seguenti:

PID
Numero di identificazione del processo
UTENTE
Proprietario del processo
PR
Priorità
NI
Bel valore
VIRT
Memoria virtuale utilizzata dal processo (KB)
RES
Memoria fisica utilizzata dal processo
SHR
Memoria condivisa utilizzata dal processo
S
Stato del processo. R – In esecuzione, S – inattivo, I – Inattivo, T – fermo, Z – zombi, D – in attesa di I/O del disco, W- sostituito, X – morto
%PROCESSORE
Il processo del tempo della CPU viene utilizzato in percentuale
%MEM
È in uso il processo di memoria fisica
VOLTA[+]
Tempo CPU totale utilizzato dal processo
COMANDO
Nome del programma

Mentre top è in esecuzione, puoi emettere una serie di comandi. Premere h o ? per vedere i comandi che possono essere eseguiti mentre top è in esecuzione. Premi k per terminare un processo. Premere q per uscire dall’inizio.

scavare

dig è un ottimo strumento per le query DNS. Si usa come segue:

dig <DNS server> <domain> <query-type>

dove

  • è il nome del server DNS che si desidera interrogare
  • è il nome di dominio per il quale desideri interrogare
  • è il nome del record che desideri conoscere: A, MX, NS SOA, ecc.

Per sopprimere un output dettagliato, usa il flag +short.

Per visualizzare un record per google.com utilizzare:

[email protected]:~$ dig google.com +short
172.217.164.174

Per visualizzare i record MX per google.com utilizzare:

[email protected]:~$ dig google.com MX  +short
50 alt4.aspmx.l.google.com.
10 aspmx.l.google.com.
20 alt1.aspmx.l.google.com.
40 alt3.aspmx.l.google.com.
30 alt2.aspmx.l.google.com.

Se devi interrogare i record DNS su Internet, puoi utilizzare lo strumento di ricerca DNS.

chi e w

che mostra gli utenti che hanno effettuato l’accesso.

[email protected]:~$ who
ubuntu   pts/0        2020-08-14 17:28 (183.83.211.129)
ubuntu   pts/1        2020-08-14 17:58 (183.83.211.129)

w mostra gli utenti attualmente connessi e i loro processi. L’intestazione mostra l’ora corrente, il tempo di attività del sistema, il numero di utenti connessi e le medie di carico del sistema.

[email protected]:~$ w
 18:07:33 up 46 days, 15:19,  2 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             [email protected]   IDLE   JCPU   PCPU WHAT
ubuntu   pts/0    183.83.211.129   17:28    2.00s  0.10s  0.00s w
ubuntu   pts/1    183.83.211.129   17:58    9:07   0.05s  0.01s vi

La parte successiva mostra i nomi utente, il terminale e l’IP remoto da cui sono collegati, il tempo di accesso, il tempo di inattività, JCPU, PCPU e il programma che stanno eseguendo. JCPU è il tempo utilizzato da tutti i processi collegati a tty mentre PCPU è il tempo utilizzato dal processo corrente.

catrame

Con GNU tar puoi archiviare più file in un unico file.

Ad esempio, crea una directory myfiles e tre file a.txt, b.txt, c.txt nella directory myfiles:

[email protected]:~$ mkdir myfiles ; touch myfiles/{a.txt,b.txt,c.txt}

Ora per creare un archivio chiamato allfiles.tar contenente tutti i file nella directory myfiles:

[email protected]:~$ tar -cvf allfiles.tar myfiles
myfiles/
myfiles/c.txt
myfiles/a.txt
myfiles/b.txt

Elenca tutti i file nella directory corrente. Puoi vedere la directory myfiles e l’archivio allfiles.tar:

[email protected]:~$ ls
allfiles.tar  myfiles

Puoi decomprimere un archivio con il flag -x. Quindi, per decomprimere allfiles.tar:

[email protected]:~$ tar -xvf allfiles.tar
myfiles/
myfiles/c.txt
myfiles/a.txt
myfiles/b.txt

Puoi anche comprimere questo archivio con -z flag. Questo creerebbe un archivio compresso con gzip.

[email protected]:~$ tar -zcvf allfiles.tar.gz myfiles
myfiles/
myfiles/c.txt
myfiles/a.txt
myfiles/b.txt
[email protected]:~$ ls
allfiles.tar.gz  myfiles

Per decomprimere un archivio compresso usa -z con -x flag.

[email protected]:~$ tar -zxvf allfiles.tar.gz 
myfiles/
myfiles/c.txt
myfiles/a.txt
myfiles/b.txt

grep

grep viene utilizzato per cercare un modello in un file o un insieme di file. Stampa tutte le linee che corrispondono a quel modello. Ad esempio, per cercare la riga contenente “ServerRoot” in /etc/apache2/apache2.conf:

[email protected]:~$ grep ServerRoot /etc/apache2/apache2.conf 
# ServerRoot: The top of the directory tree under which the server's
#ServerRoot "/etc/apache2"

Per cercare in tutti i file in una directory, utilizzare *. Per includere la ricerca nelle sottodirectory, utilizzare il flag -r (ricorsivo). Quindi, per cercare tutte le righe contenenti il ​​modello “VirtualHost” in tutti i file in /etc/apache2:

[email protected]:~$ cd /etc/apache2
[email protected]:/etc/apache2$ grep -r VirtualHost *
apache2.conf:# If you do not specify an ErrorLog directive within a <VirtualHost>
apache2.conf:# logged here.  If you *do* define an error logfile for a <VirtualHost>
conf-available/localized-error-pages.conf:# even on a per-VirtualHost basis.  If you include the Alias in the global server
conf-available/other-vhosts-access-log.conf:# Define an access log for VirtualHosts that don't define their own logfile
ports.conf:# have to change the VirtualHost statement in
sites-available/000-default.conf:<VirtualHost *:80>
...

sincronizzare

rsync è un veloce strumento da riga di comando per sincronizzare file e directory tra due posizioni. Può essere utilizzato sia per la copia locale che remota ed è veloce perché invia solo le differenze tra i file di origine e i file esistenti nella destinazione.

È ampiamente utilizzato per i backup e come comando di copia migliorato per l’uso quotidiano.

Ecco un esempio:

Per copiare/sincronizzare tutti i file dalla directory myfiles alla directory di backup:

[email protected]:~$ rsync -avh myfiles/ /backups
sending incremental file list
./
a.txt
b.txt
c.txt

sent 218 bytes  received 76 bytes  588.00 bytes/sec
total size is 0  speedup is 0.00

Per sincronizzare tutti i file dalla directory myfiles alla directory di backup su un host remoto, includere remote_user @remote_host nel nome della destinazione. Quindi, per sincronizzare la cartella myfiles su un host remoto con IP 10.0.0.50:

[email protected]:~$ rsync -avh myfiles/ [email protected]:/home/vagrant
[email protected]'s password: 
sending incremental file list
./
a.txt
b.txt
c.txt

sent 230 bytes  received 76 bytes  47.08 bytes/sec
total size is 0  speedup is 0.00

ss

Il comando ss viene utilizzato per eseguire il dump delle statistiche sui socket, in modo simile all’utilità netstat legacy. Per visualizzare i socket TCP utilizzare il flag -t.

[email protected]:~$ ss -t 
State       Recv-Q        Send-Q                 Local Address:Port                     Peer Address:Port         
ESTAB       0             0                           10.0.0.4:53852                   168.63.129.16:8037         
ESTAB       0             0                           10.0.0.4:ssh                    183.83.211.129:64118        
ESTAB       0             0                           10.0.0.4:33256                 169.254.169.254:http         
ESTAB       0             1080                        10.0.0.4:ssh                     222.186.30.35:11527        
ESTAB       0             0                           10.0.0.4:ssh                    183.83.211.129:63049

Questo non visualizzerebbe le prese in ascolto. Per includere sia i socket di ascolto che quelli di non ascolto, utilizzare i flag -t e -a.

[email protected]:~$ ss -t -a 
State        Recv-Q        Send-Q                Local Address:Port                     Peer Address:Port         
LISTEN       0             128                         0.0.0.0:ssh                           0.0.0.0:*            
LISTEN       0             80                        127.0.0.1:mysql                         0.0.0.0:*            
LISTEN       0             128                   127.0.0.53%lo:domain                        0.0.0.0:*            
ESTAB        0             0                          10.0.0.4:53852                   168.63.129.16:8037         
ESTAB        0             0                          10.0.0.4:ssh                    183.83.211.129:64118        
ESTAB        0             0                          10.0.0.4:33256                 169.254.169.254:http         
ESTAB        0             1080                       10.0.0.4:ssh                     222.186.30.35:11527        
ESTAB        0             120                        10.0.0.4:ssh                    183.83.211.129:63049        
LISTEN       0             128                            [::]:ssh                              [::]:*            
LISTEN       0             128                               *:http                                *:*

individuare

Il comando locate utilizza un database per cercare i file e in realtà può essere molto più veloce del comando find. Molto semplice da usare, per cercare un file, diciamo, apache2.conf:

[email protected]:~$ locate apache2.conf
/etc/apache2/apache2.conf
/var/lib/dpkg/info/apache2.conffiles

Puoi usare -c flag se vuoi solo il conteggio dei file che corrispondono al modello di ricerca.

[email protected]:~$ locate -c apache2.conf
2

A volte, potrebbe essere necessario aggiornare il database utilizzato da locate, che è mlocate. Per aggiornare il database utilizzare il comando updateb. Ciò richiederebbe i privilegi di superutente.

[email protected]:~$ sudo updatedb

trova

Uno dei comandi più utilizzati su Linux. Usalo per cercare file in base a nomi di file, autorizzazioni, ID utente, ID gruppo, dimensione, tipo di file, oltre ad altri criteri.

Per cercare un file per nome nella directory corrente, utilizzare il flag -name seguito dal nome del file da cercare.:

[email protected]:~$ find . -name a.txt
./myfiles/a.txt

Per cercare le directory, usa il flag -type d:

[email protected]:~$ find . -type d
.
./.ssh
./myfiles
./.cache
./.gnupg
./.gnupg/private-keys-v1.d
./docker

Per cercare i file in base alle dimensioni, ad esempio i file più grandi di 20 MB, usa il flag -size:

[email protected]:~$ find . -size +20M
./docker/docker-ce-cli_5%3a19.03.12~3-0~ubuntu-bionic_amd64.deb
./docker/docker-ce_5%3a19.03.12~3-0~ubuntu-bionic_amd64.deb

systemctl

Ora che systemd ha sostituito il processo di inizializzazione SysV nella maggior parte delle distribuzioni Linux, utilizzare il comando systemctl per gestire i servizi e le unità di systemd.

Per avviare un servizio, ad esempio apache2:

[email protected]:~$ sudo systemctl start apache2.service

Puoi lasciare il suffisso del servizio.

Per interrompere un servizio:

[email protected]:~$ sudo systemctl stop apache2

Per visualizzare lo stato del servizio, utilizzare il comando systemctl status. L’esempio seguente mostra lo stato di apache2 mentre è in esecuzione:

[email protected]:~$ sudo systemctl status apache2
● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Wed 2020-08-19 11:34:04 UTC; 2s ago
  Process: 25346 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS)
  Process: 18202 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)
  Process: 25536 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
 Main PID: 25555 (apache2)
    Tasks: 55 (limit: 1024)
   CGroup: /system.slice/apache2.service
           ├─25555 /usr/sbin/apache2 -k start
           ├─25558 /usr/sbin/apache2 -k start
           └─25559 /usr/sbin/apache2 -k start

Aug 19 11:34:04 ubuntu18 systemd[1]: Starting The Apache HTTP Server...
Aug 19 11:34:04 ubuntu18 systemd[1]: Started The Apache HTTP Server.

comando ufw

UFW: il firewall semplice è un frontend facile da usare per iptables. È disponibile per impostazione predefinita, su distribuzioni basate su Ubuntu. Su CentOS, puoi installare ufw dal repository EPEL.

Per abilitare ufw:

$ sudo ufw enable

Verifica lo stato del firewall con lo stato ufw:

$ sudo ufw status
Status: active

Le politiche UFW predefinite consentono tutto il traffico in uscita e bloccano tutto il traffico in entrata.

Il comando seguente consente il traffico in entrata sulla porta HTTP:

$ sudo ufw allow http
Rule added
Rule added (v6)

Puoi negare il traffico su qualsiasi porta. Ecco un esempio per bloccare il traffico sulla porta 21:

$ sudo ufw deny 21
Rule added
Rule added (v6)

journalctl

Usa journalctl per visualizzare i log raccolti da systemd. systemd raccoglie i log in una posizione centrale in formato binario. Per visualizzare questi registri:

[email protected]:~$ sudo journalctl
-- Logs begin at Mon 2020-06-29 02:48:31 UTC, end at Wed 2020-08-19 15:07:59 UTC. --
Jun 29 02:48:31 ubuntu kernel: Linux version 5.3.0-1028-azure ([email protected]) (gcc version 7.5.0 (Ubuntu
Jun 29 02:48:31 ubuntu kernel: Command line: BOOT_IMAGE=/boot/vmlinuz-5.3.0-1028-azure root=UUID=b0dd9d06-536e-41
Jun 29 02:48:31 ubuntu kernel: KERNEL supported cpus:
Jun 29 02:48:31 ubuntu kernel:   Intel GenuineIntel
...

Per lo più, preferiresti vedere i registri in ordine inverso, ovvero prima gli ultimi registri:

[email protected]:~$ sudo journalctl -r
-- Logs begin at Mon 2020-06-29 02:48:31 UTC, end at Wed 2020-08-19 15:10:16 UTC. --
Aug 19 15:10:16 ubuntu18 sudo[31263]: pam_unix(sudo:session): session opened for user root by ubuntu(uid=0)
Aug 19 15:10:16 ubuntu18 sudo[31263]:   ubuntu : TTY=pts/1 ; PWD=/home/ubuntu ; USER=root ; COMMAND=/bin/journalc
Aug 19 15:10:11 ubuntu18 sudo[31213]: pam_unix(sudo:session): session closed for user root
Aug 19 15:07:59 ubuntu18 sudo[31213]: pam_unix(sudo:session): session opened for user root by ubuntu(uid=0)
Aug 19 15:07:59 ubuntu18 sudo[31213]:   ubuntu : TTY=pts/1 ; PWD=/home/ubuntu ; USER=root ; COMMAND=/bin/journalc
Aug 19 15:07:56 ubuntu18 sudo[31183]: pam_unix(sudo:session): session closed for user root
Aug 19 15:06:47 ubuntu18 sudo[31183]: pam_unix(sudo:session): session opened for user root by ubuntu(uid=0)
...

Per visualizzare i log di un servizio specifico, ad esempio mysql usa -u flag:

[email protected]:~$ sudo journalctl -u mysql
-- Logs begin at Mon 2020-06-29 02:48:31 UTC, end at Wed 2020-08-19 15:11:34 UTC. --
Aug 16 12:30:02 ubuntu18 systemd[1]: Starting MySQL Community Server...
Aug 16 12:30:03 ubuntu18 systemd[1]: Started MySQL Community Server.
Aug 19 15:03:27 ubuntu18 systemd[1]: Stopping MySQL Community Server...
Aug 19 15:03:29 ubuntu18 systemd[1]: Stopped MySQL Community Server.

uccidi e uccidi tutti

Potrebbe essere necessario interrompere un processo in fuga o quando è necessario liberare alcune risorse di sistema. kill with -l flag mostra tutti i segnali che puoi inviare a un processo.

[email protected]:~$ kill -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
....

I due segnali più comunemente usati sono SIGTERM e SIGKILL. Puoi anche usare -9 per SIGKILL e -15 per SIGTERM. SIGTERM consente il completamento di un processo prima che venga terminato e quindi è chiamato soft kill. SIGKILL termina immediatamente il processo. Ecco un esempio:

Elenca tutti i processi di apache2

[email protected]:~$ ps aux|grep apache2
root      45521  0.0  0.5  78188  4688 ?        Ss   Aug08   0:03 /usr/sbin/apache2 -k start
www-data  45524  0.0  0.5 830480  4816 ?        Sl   Aug08   0:00 /usr/sbin/apache2 -k start
www-data  45525  0.0  0.7 830480  6856 ?        Sl   Aug08   0:00 /usr/sbin/apache2 -k start
ubuntu    70374  0.0  0.1  14852  1040 pts/0    S+   07:45   0:00 grep --color=auto apache2

Per terminare il processo apache2 con ID processo 45525:

[email protected]:~$ sudo kill -9 45525

Visualizza nuovamente l’elenco dei processi di apache2:

[email protected]:~$ ps aux|grep apache2
root      45521  0.0  0.5  78188  4688 ?        Ss   Aug08   0:03 /usr/sbin/apache2 -k start
www-data  45524  0.0  0.5 830480  4816 ?        Sl   Aug08   0:00 /usr/sbin/apache2 -k start
ubuntu    70525  0.0  0.1  14852  1052 pts/0    S+   07:52   0:00 grep --color=auto apache2

Usa killall per uccidere un programma per nome. Ciò significa che killall uccide il processo di controllo (genitore) e tutti i processi figlio. Per terminare tutte le istanze del processo apache2 nell’esempio sopra:

[email protected]:~$ sudo killall apache2

Usa kill and killall con cautela. Questi comandi potrebbero lasciare il sistema in uno stato instabile.

IP

Il comando ip sostituisce ifconfig nelle nuove distribuzioni Linux. Usalo per configurare e visualizzare le interfacce di rete. Utilizzato anche per visualizzare e modificare indirizzi IP, percorsi e oggetti adiacenti.

Visualizza informazioni su tutte le interfacce di rete:

[email protected]:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0d:3a:9b:88:d6 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.4/24 brd 10.0.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20d:3aff:fe9b:88d6/64 scope link 
       valid_lft forever preferred_lft forever

Per portare un’interfaccia su o giù, usa ip link set dev seguito dal nome del dispositivo. Ad esempio, per portare online l’interfaccia eth0:

[email protected]:~$ ip link set eth0 up

E per abbatterlo:

[email protected]:~$ ip link set eth0 down

Data

Un comando molto comunemente usato, qui esploriamo alcuni modi interessanti per usare questo comando.

[email protected]:~$ date
Tue Aug 11 07:42:49 UTC 2020

Per vedere la data di domenica prossima:

[email protected]:~$ date -d 'next sunday'
Sun Aug 16 00:00:00 UTC 2020

Per vedere la data di domenica scorsa:

[email protected]:~$ date -d 'last sunday'
Sun Aug  9 00:00:00 UTC 2020

Puoi anche usare –date invece di -d flag:

[email protected]:~$ date --date="last sunday"
Sun Aug  9 00:00:00 UTC 2020

Per vedere la data 6 giorni fa:

[email protected]ntu18:~$ date --date="6 days ago"
Wed Aug  5 08:06:37 UTC 2020

Data tra 6 giorni da oggi:

[email protected]:~$ date --date="6 days"
Mon Aug 17 08:08:37 UTC 2020

Puoi controllare facilmente il formato di output della data. Ecco un esempio:

[email protected]:~$ date '+%d-%B-%Y'
11-August-2020

Riepilogo

In qualità di amministratore di sistema, mantieni in funzione l’infrastruttura informatica mondiale. È necessario risolvere i problemi, mantenere e mantenere i sistemi in funzione in modo ottimale garantendo al contempo la sicurezza.

Spero che questi comandi ti siano utili e ti aiutino a svolgere meglio il tuo lavoro.

Ecco alcuni client FTP/SFTP e i migliori cheat sheet di Vim per sviluppatori e amministratori di sistema.