20 de comenzi Linux pentru administratorul de sistem

Linux oferă nenumărate comenzi și utilitare, care vă ajută să vă îndepliniți rapid și eficient sarcinile de administrare a sistemului.

Activitatea ta ca administrator de sistem include instalarea și rularea software-ului, controlul accesului, monitorizarea, asigurarea disponibilității, backup-urile, restaurarea backup-urilor și, desigur, stingerea incendiilor. 😜

În acest articol, trecem în revistă câteva dintre comenzile utilizate frecvent de administratorii de sistem Linux în munca lor de zi cu zi.

uname

Utilizați comanda uname cu indicatorul -a pentru a imprima informații despre sistem. Această comandă vă va arăta numele nucleului, versiunea kernel-ului, versiunea nucleului, numele gazdei, tipul procesorului și informațiile despre platforma dvs. 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

Iată ce înseamnă asta:

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

Utilizați comanda df pentru a verifica dimensiunea sistemului de fișiere și spațiul disponibil. Această comandă folosită de la sine arată ieșirea în blocuri de 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% /
....

Opțiunea -h arată rezultatul într-un format care poate fi citit de om, adică în MB și 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 

Pentru a ignora orice sistem de fișiere, de exemplu, tmpfs, adică pentru o ieșire mai curată, utilizați 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

Pentru a lista numai un anumit tip de sistem de fișiere, utilizați -t flag. de exemplu, pentru a vizualiza numai sistemul de fișiere 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

Utilizarea flagului total va adăuga o linie care arată totalurile generale:

[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

Pentru a verifica utilizarea spațiului pe disc într-un director, utilizați comanda du. De exemplu, pentru a vedea utilizarea spațiului pe disc în directorul /var/log. Utilizați steag -h pentru formatul care poate fi citit de om.

[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

Pentru a vedea numai utilizarea totală, utilizați doar indicatorul -s (rezumat).

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

gratuit

Utilizați comanda gratuită pentru a vedea memoria de sistem totală, utilizată și liberă. Utilizați steag -h pentru formatul care poate fi citit de om.

[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

Utilizați ps pentru a afișa informații de stare despre procesele care rulează pe sistem. Pentru a vedea toate procesele deținute de utilizatorul ubuntu, utilizați -u flag cu numele de utilizator:

[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

Pentru a vedea toate procesele, rulați ps cu steagurile auxiliare:

[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]
....

Unde

Titlu
Sens
PID
Numărul de identificare a procesului
%CPU
Procentul de timp CPU pe care îl folosește procesul
%MEM
Procentul de proces RAM este utilizat
VSZ
Memoria virtuală este utilizată în KB
RSS
Memoria fizică utilizată de procesul în KB
TTY
Terminal asociat procesului
STAT
R – Rulează sau gata de rulare, S – Dormit, I – Inactiv, T – Oprit, Z – Zombie, D – Așteaptă I/O pe disc, X – Dead, W – Schimbat, N – Proces cu prioritate scăzută, < – Proces cu prioritate ridicată

top

În timp ce comanda ps arată un instantaneu al stării proceselor în orice moment, partea de sus arată o listă de procese de sistem care se actualizează continuu (la fiecare trei secunde, implicit) în ordinea activității procesului.

Ieșirea comenzii de sus constă din două părți principale: rezumatul sistemului din partea de sus și tabelul de procese sortat în funcție de activitatea 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_+

Unele dintre câmpurile din rezumatul sistemului sunt următoarele:

  Cum să joci Project CARS 2 pe Linux

sus
Timp de funcționare. Timpul de la ultima pornire a mașinii.
medie de încărcare
Media de încărcare se referă la numărul de procese care așteaptă să ruleze, valoarea mai mică de 1,0 înseamnă că mașina nu este ocupată. Sunt 3 valori. Primul este media ultimelor 60 de secunde, al doilea este media ultimelor 5 minute și al treilea arată media ultimelor 15 minute.
% CPU(e)

Acest rând descrie activitățile CPU.
0,3 noi, utilizator
0,3% CPU este utilizat pentru procesele utilizatorului.
0.0 sy, sistem
0,0% CPU este utilizat pentru procesele de sistem.
0.0 ni, frumos
0,0% CPU este folosit de procese cu prioritate scăzută (drăguță).
99,7 id, inactiv
99,7% CPU este inactiv
0,0 wa, IO-așteptați
0,0% CPU așteaptă I/O
0,0 salut
timpul petrecut pe întreruperi hardware
0,0 si
timpul petrecut cu întreruperile software
0,0 st
piatra de timp din acest VM de către hypervisor

Câmpurile tabelului de procesare sunt după cum urmează:

PID
Numărul de identificare a procesului
UTILIZATOR
Deținătorul procesului
relatii cu publicul
Prioritate
NI
O valoare bună
VIRT
Memoria virtuală utilizată de proces (KB)
RES
Memoria fizică utilizată de proces
SHR
Memoria partajată utilizată de proces
S
Starea procesului. R – Alergare, S – dormit, I – Inactiv, T – oprit, Z – zombie, D – așteaptă I/O disc, W – schimbat, X – mort
%CPU
Procesul de timp CPU este utilizat în procente
%MEM
Procesul de memorie fizică este utilizat
TIMP[+]
Timpul total CPU utilizat de proces
COMANDA
Numele programului

În timp ce top rulează, puteți lansa o serie de comenzi. Apăsați h sau ? pentru a vedea comenzile care pot fi executate în timp ce top rulează. Apăsați k pentru a opri un proces. Apăsați q pentru a ieși de sus.

săpa

dig este un instrument excelent pentru interogări DNS. Se folosește după cum urmează:

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

Unde

  • este numele serverului DNS pe care doriți să îl întrebați
  • este numele domeniului despre care doriți să căutați
  • este numele înregistrării pe care doriți să o cunoașteți – A, MX, NS SOA etc.

Pentru a suprima ieșirea verbosă, utilizați +short flag.

Pentru a vizualiza o înregistrare pentru google.com, utilizați:

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

Pentru a vedea înregistrările MX pentru google.com, utilizați:

[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.

Dacă trebuie să interogați înregistrările DNS pe Internet, puteți utiliza instrumentul de căutare DNS.

cine si w

care arată utilizatorii care sunt conectați.

[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 arată utilizatorii conectați în prezent și procesele acestora. Antetul arată ora curentă, timpul de funcționare a sistemului, numărul de utilizatori conectați și mediile de încărcare a sistemului.

[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

Următoarea parte arată numele de utilizator, terminalul și IP-ul de la distanță de la care sunt conectați, timpul de conectare, timpul de inactivitate, JCPU, PCPU și programul pe care îl rulează. JCPU este timpul folosit de toate procesele atașate la tty, în timp ce PCPU este timpul folosit de procesul curent.

gudron

Cu GNU tar puteți arhiva mai multe fișiere într-un singur fișier.

De exemplu, creați un director myfiles și trei fișiere a.txt, b.txt, c.txt în directorul myfiles:

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

Acum pentru a crea o arhivă numită allfiles.tar care conține toate fișierele din directorul myfiles:

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

Listați toate fișierele din directorul curent. Puteți vedea directorul myfiles și arhiva allfiles.tar:

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

Puteți despacheta o arhivă cu flag -x. Deci, pentru a despacheta allfiles.tar:

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

Puteți, de asemenea, să comprimați această arhivă cu indicatorul -z. Aceasta ar crea o arhivă comprimată cu 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

Pentru a despacheta o arhivă comprimată, utilizați -z cu flag -x.

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

grep

grep este folosit pentru a căuta un model într-un fișier sau un set de fișiere. Imprimă toate liniile care se potrivesc cu modelul respectiv. De exemplu, pentru a căuta linia care conține „ServerRoot” în /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"

Pentru a căuta în toate fișierele dintr-un director, utilizați *. Pentru a include căutarea în subdirectoare, utilizați flag -r (recursiv). Deci, pentru a căuta toate liniile care conțin modelul „VirtualHost” în toate fișierele din /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>
...

rsync

rsync este un instrument rapid de linie de comandă pentru sincronizarea fișierelor și directoarelor între două locații. Poate fi folosit atât pentru copierea locală, cât și pentru copierea de la distanță și este rapid pentru că trimite doar diferențele dintre fișierele sursă și fișierele existente în destinație.

Este utilizat pe scară largă pentru copii de rezervă și ca o comandă de copiere îmbunătățită pentru utilizarea zilnică.

Iată un exemplu:

Pentru a copia/rsync toate fișierele din directorul myfiles în directorul de copii de siguranță:

[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

Pentru a sincroniza toate fișierele din directorul myfiles în directorul de copii de siguranță pe o gazdă la distanță, includeți remote_user @remote_host în numele destinației. Deci, pentru a sincroniza folderul myfiles la o gazdă la distanță cu 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

Comanda ss este folosită pentru a descărca statisticile socketului, similar cu utilitarul netstat moștenit. Pentru a afișa socket-urile TCP folosiți -t flag.

[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

Acest lucru nu ar afișa prizele care ascultă. Pentru a include atât prizele de ascultare, cât și cele care nu ascultă, utilizați steagurile -t și -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                                *:*

localiza

Comanda locate folosește o bază de date pentru a căuta fișiere și de fapt poate fi mult mai rapidă decât comanda find. Foarte simplu de utilizat, pentru a căuta un fișier, să zicem, apache2.conf:

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

Puteți folosi -c flag dacă doriți doar numărul de fișiere care se potrivesc cu modelul de căutare.

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

Uneori, poate fi necesar să reîmprospătați baza de date folosită de locate, care este mlocate. Pentru a actualiza baza de date, utilizați comanda updatedb. Acest lucru ar avea nevoie de privilegii de superutilizator.

[email protected]:~$ sudo updatedb

găsi

Una dintre cele mai frecvent utilizate comenzi pe Linux. Utilizați-l pentru a căuta fișiere pe baza numelor de fișiere, permisiuni, ID utilizator, grup, dimensiune, tip de fișier, pe lângă alte criterii.

Pentru a căuta un fișier după nume în directorul curent, utilizați steag -name urmat de numele fișierului pentru a căuta.:

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

Pentru a căuta directoare, utilizați -type d flag:

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

Pentru a căuta fișiere după dimensiune, spuneți fișiere mai mari de 20 MB, utilizați indicatorul -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

Acum că systemd a înlocuit procesul de inițiere SysV în majoritatea distribuțiilor Linux, utilizați comanda systemctl pentru a gestiona serviciile și unitățile systemd.

Pentru a porni un serviciu, de exemplu apache2:

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

Puteți părăsi sufixul serviciului.

Pentru a opri un serviciu:

[email protected]:~$ sudo systemctl stop apache2

Pentru a vedea starea serviciului, utilizați comanda systemctl status. Următorul exemplu arată starea apache2 în timp ce rulează:

[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.

comanda ufw

UFW – firewall necomplicat este un frontend ușor de utilizat pentru iptables. Este disponibil implicit, pe distribuțiile bazate pe Ubuntu. Pe CentOS, puteți instala ufw din depozitul EPEL.

Pentru a activa ufw:

$ sudo ufw enable

Verificați starea firewall-ului cu starea ufw:

$ sudo ufw status
Status: active

Politicile UFW implicite permit tot traficul de ieșire și blochează tot traficul de intrare.

Următoarea comandă permite traficul de intrare pe portul HTTP:

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

Puteți refuza traficul în orice port. Iată un exemplu de blocare a traficului pe portul 21:

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

jurnalctl

Utilizați journalctl pentru a vizualiza jurnalele colectate de systemd. systemd colectează log într-o locație centrală într-un format binar. Pentru a vizualiza aceste jurnale:

[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
...

De cele mai multe ori, ați prefera să vedeți jurnalele în ordine inversă, adică mai întâi cele mai recente jurnale:

[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)
...

Pentru a vizualiza jurnalele unui anumit serviciu, de exemplu mysql, utilizați -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.

ucide și ucide

Este posibil să trebuiască să omorâți un proces eliberat sau când trebuie să eliberați unele resurse de sistem. kill with -l afișează toate semnalele pe care le puteți trimite unui proces.

[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
....

Două semnale cele mai utilizate sunt SIGTERM și SIGKILL. De asemenea, puteți utiliza -9 pentru SIGKILL și -15 pentru SIGTERM. SIGTERM permite ca un proces să se finalizeze înainte de a fi încheiat și, prin urmare, se numește soft kill. SIGKILL încheie procesul imediat. Iată un exemplu:

Listați toate procesele 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

Pentru a opri procesul apache2 cu ID de proces 45525:

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

Vedeți din nou lista de procese 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

Utilizați killall pentru a ucide un program după nume. Ceea ce înseamnă că killall ucide procesul de control (părinte) și toate procesele copil. Pentru a elimina toate instanțele procesului apache2 din exemplul de mai sus:

[email protected]:~$ sudo killall apache2

Utilizați kill and killall cu precauție. Aceste comenzi ar putea lăsa sistemul într-o stare instabilă.

IP

Comanda ip înlocuiește ifconfig în noile distribuții Linux. Utilizați-l pentru a configura și afișa interfețele de rețea. De asemenea, folosit pentru a afișa și modifica adrese IP, rute și obiecte vecine.

Afișează informații despre toate interfețele de rețea:

[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

Pentru a ridica sau în jos o interfață, utilizați ip link set dev urmat de numele dispozitivului. De exemplu, pentru a aduce interfața eth0 online:

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

Și pentru a o doborî:

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

Data

O comandă folosită foarte des, aici explorăm câteva modalități interesante de a folosi această comandă.

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

Pentru a vedea data de duminica viitoare:

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

Pentru a vedea data de duminica trecută:

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

De asemenea, puteți utiliza –date în loc de -d flag:

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

Pentru a vedea data de acum 6 zile:

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

Data peste 6 zile:

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

Puteți controla cu ușurință formatul de ieșire a datei. Iată un exemplu:

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

rezumat

În calitate de administrator de sistem, mențineți infrastructura de calcul a lumii în funcțiune. Trebuie să rezolvați problemele, să întrețineți și să mențineți sistemele să funcționeze optim, asigurând în același timp securitatea.

Sper că aceste comenzi vă vor fi utile și vă vor ajuta să vă faceți treaba mai bine.

Iată câțiva clienți FTP/SFTP și cele mai bune foi Vim pentru dezvoltatori și administratori de sistem.