Linux

Server Web 149 Solutii

Comanda awk linux

Printre numeroasele unelte de procesare a textului disponibile în shell-ul Linux, awk se remarcă prin puterea și versatilitatea sa.
Dezvoltat inițial în anii 1970 de Aho, Weinberger și Kernighan, awk este mai mult decât o comandă – este un limbaj complet de programare conceput pentru procesarea și analiza fișierelor text.

Comanda awk

awk funcționează pe fișiere și fluxuri ca o secvență de înregistrări și câmpuri.
Implicit, o înregistrare este definită ca un rând, iar câmpurile sunt separate prin spațiu alb, deși ambele pot fi redefinite.

Sintaxa de bază a comenzii awk este:

awk 'pattern {action}' fisier
  • Pattern: Specifică momentul când trebuie realizată acțiunea. Dacă este omis, acțiunea se aplică pentru fiecare linie.
  • Acțiune: Un set de comenzi care sunt executate atunci când pattern-ul este potrivit. Acțiunile sunt închise în acolade {}.

Afisarea primei coloane dintr-un fișier

Comanda de mai jos va afisa primul câmp din fiecare înregistrare (de obicei, primul cuvânt din fiecare linie) din fișierul fisier.txt:

awk '{print $1}' fisier.txt

Suma și media unei coloane

Această comandă calculează suma și media valorilor din a doua coloană a fișierului fisier.txt:

awk '{sum+=$2; count++} END {print "Sum =", sum; print "Average =", sum/count}' fisier.txt

Filtrare pe baza unei condiții

Această comandă va afișa liniile din fișierul fisier.txt unde al treilea câmp este mai mare de 100:

awk '$3 > 100' fisier.txt

Întrebări frecvente

  1. Cum schimb separatorul de câmpuri în awk?
    Folosește opțiunea -F urmată de separatorul dorit. De exemplu:

    awk -F, '{print $2}' fisier.csv

    Aceasta va afișa al doilea câmp dintr-un fișier CSV.

  2. Poate awk să proceseze mai multe fișiere simultan?
    Da, awk poate procesa mai multe fișiere secvențial. De exemplu:

    awk '{print}' fisier1.txt fisier2.txt

    Va procesa fisier1.txt și fisier2.txt consecutiv.

  3. Cum pot integra variabilele shell-ului în awk?
    Poți transmite variabilele shell-ului către awk folosind opțiunea -v. De exemplu:

    var="value"; awk -v awkVar="$var" '{print awkVar}' fisier.txt

    Aceasta va afișa valoarea variabilei shell var pentru fiecare linie din fișierul fisier.txt.

  4. Este posibil să modific un fișier direct folosind awk?
    Nu, awk nu suportă editarea în loc, precum sed -i. Totuși, poți realiza acest lucru redirecționând ieșirea awk într-un fișier temporar și apoi redenumindu-l în fișierul original.

  5. Poate awk fi folosit pentru procesări complexe de text?
    Absolut! Deși awk este simplu pentru sarcini de bază, este suficient de puternic pentru procesări complexe de text. Suportă array-uri, funcții și expresii regulate, ceea ce îl face potrivit pentru diverse sarcini de manipulare a textului.

[mai mult...]

Cum whitelistezi un IP in Fail2Ban?

Fail2Ban este utilizat pentru a proteja serverele impotriva atacurilor brute-force. Fail2Ban foloseste iptables pentru a bloca atacatorii, asa ca, daca dorim sa adaugam o adresa IP permanenta care sa nu fie blocata, trebuie sa o adaugam in fisierul de configurare.

Mai intai, editeaza fisierul de configurare:

nano /etc/fail2ban/jail.local

Daca nu ai fisierul jail.local, editeaza fisierul jail.conf in schimb:

nano /etc/fail2ban/jail.conf

Apoi, cauta linia:

ignoreip =

Adauga acum toate adresele IP pe care le vrei sa le excluzi. Fiecare adresa IP sau interval de adrese IP trebuie separat printr-un spatiu. De exemplu: 192.168.0.1 192.168.5.0/32

Exemplu:

ignoreip = 192.168.0.1 192.168.5.0/32

Linia ar trebui sa fie adaugata in sectiunea [DEFAULT] a fisierului.

Salveaza fisierul si reporneste Fail2Ban:

service fail2ban restart
[mai mult...]

Comanda tty in Linux – explicatie si exemple

Comanda tty (prescurtare de la “teletypewriter”) este utilizata pentru a afisa numele fisierului terminalului conectat la intrarea standard. Practic, aceasta comanda indica ce terminal este utilizat, returnand o cale precum /dev/tty1 sau /dev/pts/2.

Aceasta comanda este utila in scripting si gestionarea sesiunilor de terminal, ajutand utilizatorii si administratorii de sistem sa identifice terminalul activ si sa se asigure ca comenzile si iesirile sunt directionate corect.

Formatul comenzii este simplu:

tty [OPTION]...

Potrivit paginii de manual, aceasta comanda afiseaza numele fisierului terminalului conectat la intrarea standard.

Tty este o prescurtare pentru teletype, dar este mai cunoscut sub denumirea de terminal. Este un dispozitiv (implementat software in prezent) care permite interactiunea cu sistemul, transmitand datele introduse si afisand iesirea generata de sistem.

Exista mai multe tipuri de tty:

  • Consola grafica (accesibila cu Ctrl+Alt+Fn)
  • Emulatori de terminal precum Gnome Terminal (rulat intr-o sesiune X)

Cum functioneaza comanda tty?

Utilizarea este simpla: ruleaza comanda tty, iar aceasta va afisa numele terminalului conectat la iesirea standard.

tty

Exemplu de output pe un sistem:

/dev/pts/19

Daca comanda este executata intr-un mediu care nu este un terminal, va afisa mesajul:

not a tty

Cum fac tty sa returneze doar codul de iesire?

Optiunea -s face comanda tty sa nu produca output, returnand doar codul de iesire.

tty -s

Codurile de iesire:

  • 0 – daca intrarea standard este un terminal
  • 1 – daca intrarea standard nu este un terminal
  • 2 – daca au fost furnizate argumente gresite
  • 3 – daca a aparut o eroare de scriere.
[mai mult...]

Configurarea unei adrese IP in Linux: IP Dinamic vs. IP Static

Atunci cand configurezi un sistem Linux, una dintre setarile esentiale este configurarea unei adrese IP. Intelegerea diferentelor dintre IP-urile dinamice si statice este cruciala, fie ca lucrezi pe o retea de acasa, configurezi un server sau inveti despre networking in Linux.

O adresa IP (Internet Protocol) este un identificator unic atribuit fiecarui dispozitiv dintr-o retea. Aceasta permite comunicarea intre dispozitive prin trimiterea si primirea de date. Exista doua tipuri principale de adrese IP:

  • IPv4 (exemplu: 192.168.1.1)
  • IPv6 (exemplu: 2001:0db8:85a3:0000:0000:8a2e:0370:7334)

Un IP dinamic este atribuit automat unui dispozitiv de catre un server DHCP (Dynamic Host Configuration Protocol) de fiecare data cand dispozitivul se conecteaza la retea. Acest IP se poate schimba periodic.

Cum functioneaza IP-ul dinamic?

  • Atribuire automata de catre serverul DHCP: Dispozitivul trimite o cerere catre server, iar acesta ii aloca un IP disponibil.
  • Alocare temporara: Adresa IP este oferita pe o perioada determinata (lease). La expirare, poate fi reinnoita sau schimbata.
  • Configurare automata: Utilizatorul nu trebuie sa gestioneze IP-urile manual.

Avantaje IP Dinamic

 Usor de folosit – Ideal pentru retele de acasa sau situatii in care nu este necesara gestionarea manuala.
 Gestionare eficienta – Serverul DHCP aloca IP-urile automat, evitand conflictele.
 Preferat de furnizorii de internet – ISP-urile pot reutiliza IP-urile pentru clienti diferiti.

Dezavantaje IP Dinamic

 Nu este potrivit pentru servere – Deoarece IP-ul se poate schimba, nu este ideal pentru servere care trebuie sa fie mereu accesibile.
 Control limitat – Utilizatorul nu poate configura reteaua dupa nevoi avansate.

IP Static

Un IP static este o adresa fixa, atribuita manual unui dispozitiv. Spre deosebire de un IP dinamic, acesta nu se schimba la fiecare reconectare la retea.

Cum functioneaza IP-ul static?

  • Configurare manuala: Utilizatorul seteaza manual adresa IP, masca de subretea, gateway-ul si serverele DNS.
  • Atribuire permanenta: Odata configurat, IP-ul ramane acelasi pana la schimbarea manuala.
  • Acces constant: Este ideal pentru servere si dispozitive care trebuie sa fie mereu accesibile.

Avantaje IP Static

 Accesibilitate constanta – Dispozitivele pot fi gasite mereu la aceeasi adresa.
 Ideal pentru servere – Web servere, servere de email sau alte servicii care necesita un IP fix.
 Mai mult control – Permite configuratii avansate ale retelei.

Dezavantaje IP Static

 Configurare mai complexa – Necesita setare manuala si administrare atenta.
 Posibile conflicte – Daca doua dispozitive primesc aceeasi adresa IP, apar probleme de conectivitate.
 Nu este practic pentru retele mari – Gestionarea manuala a IP-urilor poate deveni dificila.

Foloseste IP Dinamic cand:

  • Ai o retea de acasa sau un business mic unde vrei configurare automata.
  • Dispozitivele se schimba frecvent (laptopuri, telefoane, tablete).
  • Esti client ISP si nu ai nevoie de un IP fix.

Foloseste IP Static cand:

  • Configurezi un server (web, email, fisiere) care trebuie sa fie accesibil constant.
  • Ai dispozitive in retea (imprimante, camere de supraveghere) care trebuie sa fie usor de gasit.
  • Ai nevoie de acces de la distanta si vrei un IP stabil.

Cum setezi un IP Static in Linux

Pentru sistemele Debian/Ubuntu

  1. Editeaza fisierul de configurare a retelei:
    sudo nano /etc/network/interfaces
  2. Adauga urmatoarele linii cu valorile dorite:

    iface eth0 inet static

    address 192.168.1.10

    netmask 255.255.255.0

    gateway 192.168.1.1

    dns-nameservers 8.8.8.8 8.8.4.4

  3. Salveaza fisierul si reporneste serviciul de retea:
    sudo systemctl restart networking

Pentru sistemele Red Hat/CentOS

  1. Editeaza fisierul de configurare al interfetei de retea:
    sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
  2. Adauga urmatoarele setari:

    BOOTPROTO=static

    IPADDR=192.168.1.10

    NETMASK=255.255.255.0

    GATEWAY=192.168.1.1

    DNS1=8.8.8.8

    DNS2=8.8.4.4

  3. Salveaza fisierul si reporneste reteaua:
    sudo systemctl restart network

Intelegerea diferentei dintre IP-urile dinamice si statice este esentiala pentru orice utilizator de Linux, fie ca administrezi o retea de acasa, fie ca gestionezi servere.

IP-urile dinamice sunt usor de folosit si necesita configurare minima, fiind ideale pentru utilizatorii obisnuiti.
IP-urile statice ofera consistenta si control, fiind necesare pentru servere si dispozitive care trebuie sa fie mereu accesibile.

[mai mult...]

Cum aflu daca un sistem la distanta este inca activ?

Poti folosi comanda ping pentru a vedea daca sistemul este activ:

ping -c4 <adresa IP a sistemului>

Pentru a verifica daca un anumit serviciu este activ, foloseste comanda telnet:

telnet <adresa IP a sistemului> 25   # pentru SMTP

telnet <adresa IP a sistemului> 80   # pentru HTTP

telnet <adresa IP a sistemului> 110  # pentru POP3

Daca ai acces SSH (port 22), te poti conecta la sistem si folosi cateva comenzi utile pentru informatii suplimentare:

uptime – arata de cat timp este pornit sistemul

ps aux – afiseaza o lista cu toate procesele active

netstat -tap – afiseaza toate serviciile care asculta pe un port

top – afiseaza incarcarea sistemului in timp real

dmesg – afiseaza mesajele de pornire ale ultimului boot

De asemenea, poti verifica /var/log/ pentru fisiere de log care contin informatii despre erori si activitatea sistemului.

[mai mult...]