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.
Sommario:
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.
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) SIGKILL10) SIGUSR1 11) SIGSEGV12) SIGUSR213) SIGPIPE14) SIGALRM15) SIGTERM 16) SIGSTKFLT17) SIGCHLD18) SIGCONT19) SIGSTOP20) 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.