Aplicații

E-mail 995 Solutii

Cum te feresti de Virusi in 2025?

In lumea digitala de astazi, atacurile cibernetice sunt tot mai frecvente, iar utilizatorii obisnuiti sunt expusi constant la diverse amenintari. Printre cele mai periculoase tipuri de malware se numara virusii, trojenii si worm-urile. Aceste programe daunatoare pot compromite datele, afecta performanta dispozitivelor si chiar fura informatii personale.

Daca vrei sa navighezi in siguranta pe internet si sa iti protejezi dispozitivele, este esential sa intelegi ce sunt acesti malware si cum sa te feresti de ei. In acest articol, vei descoperi metode eficiente pentru a te proteja impotriva virusilor, trojenilor si worm-urilor.

[mai mult...]

Cum se instalează Jupyter Notebook cu proxy Nginx pe Debian 12

Jupyter este o aplicație web gratuită și open-source pentru calcul interactiv și știința datelor. Jupyter este compatibilă cu toate limbajele de programare și oferă mai multe programe software, cum ar fi JupyetrLab, care oferă un mediu de editare multi-notebook bogat în funcții și cu file, Notebook ca o modalitate ușoară și simplificată de creare a notelor, Qtconsole și multe altele.

Înainte de a începe, asigurați-vă că aveți următoarele:

  • Un server Debian 12
  • Un utilizator non-root cu privilegii de administrator
  • Un nume de domeniu a indicat adresa IP a serverului

Instalarea pachetelor Python

Înainte de a instala Jupyter, trebuie să instalați Python, managerul de pachete Pip Python, venv pentru crearea unui mediu virtual Python și git. În această secțiune, veți instala aceste pachete cu ajutorul managerului de pachete APT.

Pentru a începe, executați comanda de mai jos pentru a actualiza indexul pachetului Debian.

actualizare sudo apt

Acum instalați Python și dependențele precum Pip, venv și pachetul Python Dev. Introduceți „ Y ” pentru a confirma instalarea.

sudo apt instalează python3 python3-pip python3-dev python3-venv git

După finalizarea instalării, executați comanda „ pip3 ” de mai jos pentru a actualiza versiunea de Pip.

pip3 instalează --break-system-package --upgrade pip

Acum verificați versiunea Python și Pip cu comanda de mai jos.

python3 --version 
pip3 --version

Puteți vedea mai jos că sunt instalate Python 3.11 și Pip 24.3 .

Configurarea mediului virtual Python

După ce ați instalat Python și alte dependențe, veți crea un nou mediu virtual Python pentru instalarea Jupyter. Astfel, instalarea Jupyter va fi izolată în mediul virtual. De asemenea, aveți nevoie de un utilizator Linux dedicat, așa că asigurați-vă că aveți utilizatorul pregătit.

Conectați-vă la utilizatorul dvs. cu comanda de mai jos.

su - nume de utilizator

Rulați comanda „ python3 ” de mai jos pentru a crea un nou mediu virtual Python, „ venv ”. Aceasta va instala Python și Pip în mediul dvs. virtual, care este separat de sistemul dvs.

python3 -m venv venv

Activați mediul virtual Python „ venv ”. Odată activat, promptul shell va deveni de genul „ (venv) numeutilizator@gazdă … ”.

sursă venv/bin/activate

Dacă doriți să dezactivați „ venv ”, executați comanda „ deactivate ” de mai jos.

deactivate

Instalarea Jupyter

Acum că ați creat și activat mediul virtual Python, puteți începe instalarea Jupyter prin intermediul managerului de pachete Pip Python.

Pentru a instala Jupyter, executați comanda „ pip3 ” de mai jos.

pip3 install jupyter

Mai jos puteți vedea instalarea Jupyter într-un mediu virtual.

După finalizarea instalării, verificați versiunea Jupyter cu următoarea comandă.

jupyter --version

În rezultatul următor, puteți vedea versiunea fiecărei componente Jupyter instalate.

Activați autentificarea în Jupyter Notebook

După ce ați instalat Jupyter, veți configura instalarea Jupyter Notebook activând autentificarea prin parolă.

Mai întâi, executați comanda de mai jos pentru a genera configurația pentru Jupyter Notebook. Aceasta va genera o nouă configurație pentru „ ~/.jupyter/jupyter_notebook_config.py ”.

jupyter notebook --geenrate-config

Acum setați parola pentru Jupyter Notebook folosind comanda de mai jos. Introduceți parola când vi se solicită și repetați.

jupyter notebook password

În cele din urmă, executați comanda „ deactivate ” pentru a vă deconecta din mediul virtual „venv”.

deactivate

Rularea Jupyter Notebook ca serviciu Systemd

În această secțiune, veți crea un nou serviciu systemd care va rula Jupyter Notebook. Astfel, Jupyter Notebook va rula în fundal ca serviciu systemd și îl puteți gestiona cu ușurință cu utilitarul „ systemctl ”.

Creați un nou fișier de serviciu systemd „ /etc/systemd/system/jupyter.service ” cu următorul editor „ nano ”.

sudo nano /etc/systemd/system/jupyter.service

Introduceți configurația de mai jos pentru a rula Jupyter Notebook ca serviciu systemd.

[Unitate] 
Descriere=Jupyter Notebook 

[Unit]
Description=Jupyter Notebook

[Service]
Type=simple
PIDFile=/run/jupyter.pid
ExecStart=/home/alice/venv/bin/jupyter-notebook --config=/home/alice/.jupyter/jupyter_notebook_config.py --allow-root
User=root
Group=root
WorkingDirectory=/home/alice/venv
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Salvați fișierul și ieșiți din editor.

Acum executați comanda „ systemctl ” de mai jos pentru a reporni managerul systemd și a aplica modificările.

sudo systemctl daemon-reload

În cele din urmă, porniți și activați serviciul „ jupyter ” cu comanda de mai jos.

sudo systemctl enable --now jupyter 
sudo systemctl status jupyter

În următoarea ieșire, puteți vedea că serviciul „ jupyter ” rulează pe sistemul dumneavoastră.

Permiterea accesului de la distanță la Jupyter Notebook

În această secțiune, veți activa accesul de la distanță la Jupyter. Acest lucru trebuie făcut dacă doriți să configurați un proxy invers în fața instalării Jupyter.

Conectați-vă la contul de utilizator și deschideți configurația Jupyter „~/.jupyter/jupyter_notebook_config.py” cu următorul editor „nano”.

su - username
nano ~/.jupyter/jupyter_notebook_config.py

Pentru a activa accesul la distanță, eliminați comentariile de la opțiunea „ c.ServerApp.allow_remote_access ” și schimbați valoarea la „ True ”.

c.ServerApp.allow_remote_access = True

Salvați și ieșiți din fișier când ați terminat.

Apoi, executați comanda „ systemctl ” de mai jos pentru a reporni serviciul „ jupyter ” și a aplica modificările. Astfel, noul token va fi generat și poate fi găsit în fișierul jurnal.

sudo systemctl restart jupyter

În cele din urmă, verificați starea serviciului „ jupyter ” cu următoarea comandă.

sudo systemctl status jupyter

Uită-te la partea de jos a mesajului și copiază token-ul generat pentru Jupyter  Notebook.

Setarea Nginx ca proxy invers

Acum, că Jupyter Notebook rulează ca serviciu, următorul pas este să instalați Nginx și să îl configurați ca proxy invers pentru Jupyter Notebook. În acest fel, puteți securiza cu ușurință Jupyter Notebook cu HTTPS.

Instalați pachetul „ nginx ” cu comanda „ apt ” de mai jos.

sudo apt install nginx -y

După finalizarea instalării, creați o nouă configurație de blocuri pentru serverul Nginx „ /etc/nginx/sites-available/jupyter ” cu următorul editor „ nano ”.

sudo nano /etc/nginx/sites-available/jupyter

Introduceți configurația de mai jos pentru a configura Nginx ca proxy invers pentru Jupyter Notebook. Asigurați-vă că schimbați parametrul „ server_name ” cu numele domeniului dvs.

server {
listen 80;
server_name lab.howtoforge.local;

access_log /var/log/nginx/howtoforge.local.access.log;
error_log /var/log/nginx/howtoforge.local.error.log;

location / {
proxy_pass http://127.0.0.1:8888;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
}
}

Salvați fișierul și ieșiți din editor.

Apoi, executați comanda de mai jos pentru a activa blocul de server „ jupyter ” și a verifica configurația Nginx.

sudo ln -s /etc/nginx/sites-available/jupyter /etc/nginx/sites-enabled/ 
sudo nginx -t

Dacă aveți setările Nginx corecte, veți vedea un mesaj de genul „ sintaxa este ok – testul a reușit ”.

În cele din urmă, executați comanda „ systemctl ” de mai jos pentru a reporni serverul web Nginx și a verifica starea Nginx.

sudo systemctl restart nginx 
sudo systemctl status nginx

Dacă Nginx rulează, puteți vedea un rezultat de genul următor:

Accesarea Jupyter Notebook

Deschideți browserul web și accesați numele de domeniu al instalării Jupyter Notebook, cum ar fi http://lab.howtoforge.local/. Dacă instalarea a reușit, vi se va solicita autentificarea cu parola Jupyter.

Introduceți parola și faceți clic pe „ Autentificare ”.

Acum veți vedea tabloul de bord Jupyter Notebook astfel:

[mai mult...]

Cum se folosește grep pentru a căuta șiruri de caractere în fișiere în shell-ul Linux

Comanda grep din Linux este un utilitar puternic de căutare de text care permite utilizatorilor să caute în fișiere sau fluxuri de text modele specifice. Aceasta este prescurtarea de la „ global regular expression print ” (afișarea expresiei regulate globale) și acceptă căutarea după șiruri de text simple și expresii regulate mai complexe. Comanda este adesea combinată cu alte comenzi pentru a filtra și rafina ieșirea. În mod implicit, grep returnează toate liniile care conțin modelul. Totuși, oferă diverse opțiuni pentru personalizarea căutării, cum ar fi sensibilitatea la majuscule/minuscule, numărarea aparițiilor sau căutarea recursivă prin directoare. Acest lucru o face un instrument esențial pentru administratorii de sistem, dezvoltatori și oricine lucrează cu seturi mari de date într-un mediu de tip Unix.

Comanda grep este utilizată în principal pentru a căuta într-un text sau fișier linii care conțin o potrivire cu cuvintele/șirurile specificate. În mod implicit, grep afișează liniile potrivite și poate fi utilizată pentru a căuta linii de text care corespund uneia sau mai multor expresii regulate și afișează doar liniile potrivite.

Comanda grep face parte din utilitarele de bază ale oricărei distribuții Linux, deci este preinstalată în mod implicit pe AlmaLinux, CentOS, Debian, Linux Mint, Ubuntu, RHEL și RockyLinux.

Sintaxa de bază a comenzii grep

Sintaxa de bază a comenzii grep este următoarea:

grep 'word' filename
grep 'word' file1 file2 file3
grep 'string1 string2'  filename
cat otherfile | grep 'something'
command | grep 'something'
command option1 | grep 'data'
grep --color 'data' fileName

Cum se utilizează comanda grep pentru căutarea într-un fișier

În primul exemplu, voi căuta utilizatorul „tom” în fișierul passwd de Linux. Pentru a căuta utilizatorul „tom” în fișierul /etc/passwd , trebuie să introduceți următoarea comandă:

grep tom /etc/passwd

Mai jos este prezentat exemplul de ieșire:

tom:x:1000:1000:tom,,,:/home/tom:/bin/bash

Aveți opțiunea de a instrui grep să ignore majusculele/minusculele cuvintelor, adică să potrivească abc, Abc, ABC și toate combinațiile posibile cu opțiunea -i, așa cum se arată mai jos:

grep -i "tom" /etc/passwd

Utilizarea recursivă a grep-ului

Dacă aveți o grămadă de fișiere text într-o ierarhie de directoare, de exemplu, fișierele de configurare Apache din /etc/apache2/ și doriți să găsiți fișierul în care este definit un anumit text, utilizați opțiunea -r a comenzii grep pentru a efectua o căutare recursivă. Aceasta va efectua o operațiune de căutare recursivă prin fișiere pentru șirul „197.167.2.9” (așa cum se arată mai jos) în directorul /etc/apache2/ și toate subdirectoarele sale:

grep -r "domeniulmeu.com" /etc/apache2/

Alternativ, se poate utiliza următoarea comandă:

grep -R "domeniulmeu.com" /etc/apache2/

Mai jos sunt prezentate exemple de rezultate pentru o căutare similară pe un server Nginx:

grep -r "domeniulmeu.com" /etc/nginx/ 
/etc/nginx/sites-available/domeniulmeu.com.vhost: if ($http_host != "www.domeniulmeu.com") {

Aici, veți vedea rezultatul pentru domeniul_mydomain.com pe o linie distinctă, precedat de numele fișierului (de exemplu /etc/nginx/sites-available/mydomain.com.vhost) în care a fost găsit. Includerea numelor de fișiere în datele de ieșire poate fi ușor suprimată utilizând opțiunea -h (așa cum se explică mai jos): grep -h -R “mydomain.com” /etc/nginx/. Mai jos este prezentat exemplul de ieșire:

grep -r "domeniulmeu.com" /etc/nginx/ 
if ($http_host != "www.domeniulmeu.com") {

Folosirea grep pentru a căuta doar cuvinte

Când căutați „abc”, comanda grep va găsi tot felul de rezultate, de exemplu, kbcabc, abc123, aarfbc35 și multe alte combinații, fără a respecta limitele cuvintelor. Puteți obliga comanda grep să selecteze doar acele linii care conțin potriviri pentru a forma cuvinte întregi (cele care se potrivesc doar cu cuvântul abc), așa cum se arată mai jos:

grep -w "abc" fișier.txt

Exemplu:

Pentru a căuta două cuvinte diferite, trebuie să utilizați comanda egrep, așa cum se arată mai jos:

egrep -w 'cuvânt1|cuvânt2' /calea/către/fișier

Comanda grep are capacitatea de a raporta numărul de potriviri pentru un anumit model pentru fiecare fișier folosind opțiunea -c (count) (așa cum se arată mai jos):

grep -c 'word' /calea/către/fișier

În plus, utilizatorii pot folosi opțiunea „-n” care precede fiecare linie de ieșire cu numărul liniei din fișierul text din care a fost obținută (așa cum se arată mai jos):

grep -n 'root' /etc/passwd

Mai jos sunt prezentate exemplele de ieșiri:

1:root:x:0:0:root:/root:/bin/bash

Grep inversează potrivirea

Utilizatorii pot folosi opțiunea -v pentru a inversa potrivirea, ceea ce înseamnă că va afișa doar acele linii care nu conțin cuvântul dat. De exemplu, puteți afișa toate liniile care nu conțin cuvântul par utilizând următoarea comandă:

grep -v par /calea/către/fișier

Cum se listează doar numele fișierelor care corespund

Trebuie să utilizați opțiunea -l pentru a lista numele de fișiere al căror conținut menționează un anumit cuvânt, de exemplu, cuvântul „primary”, utilizând următoarea comandă:

grep -l 'primar' *.c

În cele din urmă, aveți opțiunea de a obliga grep să afișeze ieșirea în anumite culori utilizând următoarea comandă:

grep --color root /etc/passwd

Mai jos sunt prezentate exemple de rezultate:

Cum se face ca comanda grep să gestioneze mai multe modele de căutare

Pot exista situații în care doriți să căutați mai multe modele într-un anumit fișier (sau set de fișiere). În astfel de scenarii, ar trebui să utilizați opțiunea de linie de comandă „ -e” oferită de grep.

De exemplu, să presupunem că vrei să cauți cuvintele „how” (cum), „to” (să) și „forge” (falsificare) în toate fișierele text prezente în directorul de lucru curent. Iată cum poți face acest lucru:

grep -e cum se face -e la falsificarea unui fișier *.txt

Iată comanda în acțiune:

Opțiunea „ -e” din linia de comandă este utilă și în scenariile în care modelul începe cu o cratimă (-). De exemplu, dacă doriți să căutați, să zicem, „-how”, atunci următoarea comandă nu va fi utilă:

grep -how *.txt

Atunci când folosești opțiunea -e din linia de comandă, comanda înțelege exact ce încerci să cauți în acest caz:

grep -e -how *.txt

Iată ambele comenzi în acțiune:

Cum se limitează ieșirea grep la un anumit număr de linii

În cazul în care doriți să limitați ieșirea grep la un anumit număr de linii, puteți face acest lucru folosind opțiunea de linie de comandă „ -m” . De exemplu, să presupunem că doriți să căutați cuvântul „how” în testfile1.txt, care conține următoarele linii:

Dar cerința este ca grep să oprească căutarea după ce au fost găsite 3 linii care conțin modelul căutat. Așadar, pentru a face acest lucru, puteți rula următoarea comandă:

grep "how" -m3 fișiertest1.txt

Iată comanda în acțiune:

Trecând mai departe, iată ce spune pagina de manual a comenzii:

Dacă intrarea este o intrare standard dintr-un fișier obișnuit și se generează NUM linii corespondente, grep asigură că intrarea standard este poziționată imediat după ultima linie corespondentă înainte de ieșire, indiferent de prezența liniilor de context la final. Acest lucru permite unui proces apelant să reia o căutare.

De exemplu, dacă aveți un script bash care are o buclă și doriți să obțineți o potrivire per iterație a buclei, atunci utilizarea  „grep -m1” va face ceea ce este necesar.

Cum se face ca grep să obțină modele dintr-un fișier

Dacă doriți, puteți face ca comanda grep să obțină modele dintr-un fișier. Opțiunea -f din linia de comandă a instrumentului vă permite să faceți acest lucru.

De exemplu, să presupunem că vrei să cauți în toate fișierele .txt din directorul curent cuvintele „cum” și „să”, dar vrei să furnizezi aceste șiruri de intrare printr-un fișier numit, să zicem, „input”, iată cum poți face acest lucru:

grep -f input *.txt

Iată comanda în acțiune:

Iar modelul pe care vrei să-l cauți este „ce mai faci?”. Așadar, pentru a te asigura că grep afișează doar liniile care corespund complet acestui model, folosește-l în felul următor:

grep -x „how are you?” *.txt

Iată comanda în acțiune:

Cum să forțezi grep să nu afișeze nimic în ieșire

Pot exista situații în care nu este nevoie de comanda grep pentru a genera nimic în rezultat. În schimb, doriți doar să știți dacă a fost găsită o potrivire pe baza stării de ieșire a comenzii. Acest lucru se poate realiza folosind opțiunea -q din linia de comandă.

În timp ce opțiunea -q dezactivează ieșirea, starea de ieșire a instrumentului poate fi confirmată cu comanda „echo $?”. În cazul grep, comanda se închide cu starea „0” atunci când are succes (adică a fost găsită o potrivire), în timp ce se închide cu starea „1” atunci când nu a fost găsită nicio potrivire.

Următoarea captură de ecran prezintă atât scenariile de succes, cât și cele nereușite:

Cum se face ca grep să afișeze numele fișierelor care nu conțin modelul de căutare

În mod implicit, comanda grep afișează numele fișierelor care conțin modelul de căutare (precum și liniile potrivite). Acest lucru este destul de logic, deoarece asta se așteaptă de la acest instrument. Cu toate acestea, pot exista cazuri în care cerința ar putea fi obținerea numelor acelor fișiere care nu conțin modelul căutat.

Acest lucru este posibil și cu grep – opțiunea -L vă permite să faceți acest lucru. De exemplu, pentru a găsi toate acele fișiere text din directorul curent care nu conțin cuvântul „how”, puteți rula următoarea comandă:

grep -L "how" *.txt

Iată comanda în acțiune:

Cum se suprimă mesajele de eroare produse de grep

Dacă doriți, puteți forța grep să dezactiveze orice mesaje de eroare afișate în ieșire. Acest lucru se poate face folosind opțiunea -s din linia de comandă. De exemplu, luați în considerare următorul scenariu în care grep produce o eroare/avertisment legat de directorul pe care îl întâlnește:

Deci, în acest tip de scenariu, opțiunea -s din linia de comandă ajută. Vedeți mai jos.

Deci puteți vedea că eroarea/avertismentul a fost dezactivat.

Cum se face grep să caute recursiv în directoare

După cum reiese din exemplul folosit la punctul anterior, comanda grep nu efectuează o căutare recursivă în mod implicit. Pentru a vă asigura că căutarea grep este recursivă, utilizați opțiunea -d din linia de comandă și transmiteți-i valoarea „recurse”.

grep -d recursiv "how" *

Nota 1 : Mesajul de eroare/avertisment legat de director despre care am discutat la punctul anterior poate fi, de asemenea, dezactivat folosind opțiunea —d — tot ce trebuie să faceți este să îi transmiteți valoarea „skip”.

Nota 2 : Folosiți opțiunea „–exclude-dir=[DIR]” pentru a exclude directoarele care corespund modelului DIR din căutările recursive.

Cum se face ca grep să termine numele de fișiere cu caracterul NULL

După cum am discutat deja, opțiunea -l din linia de comandă a comenzii grep este utilizată atunci când doriți ca instrumentul să afișeze doar numele fișierelor în ieșire. De exemplu:

Însă, după cum probabil știți deja, caracterul newline poate face parte și dintr-un nume de fișier. Așadar, atunci când se lucrează cu cazuri în care numele fișierelor conțin un newline și sunt separate/terminate prin newline, devine dificil să se lucreze la ieșirea grep (mai ales când se accesează ieșirea printr-un script).

Ar fi bine dacă caracterul de separare/terminare nu ar fi un nou rând. Ei bine, te vei bucura să afli că grep oferă o opțiune -Z în linia de comandă care asigură că numele fișierelor sunt urmate de un caracter NULL și nu de un nou rând.

Deci, în cazul nostru, comanda devine:

grep -lZ "how" *.txt

Iată cum am confirmat prezența caracterului NULL:

Mai jos este o opțiune conexă din linia de comandă pe care ar trebui să o cunoașteți:

-z, --null-data
 Tratează intrarea ca un set de linii, fiecare terminată de un octet zero (caracterul ASCII NUL) în loc de o linie nouă. La fel ca opțiunile -Z sau --null, această opțiune poate fi utilizată cu comenzi precum sort -z pentru a procesa nume de fișiere arbitrare.

Cum se utilizează GREP pentru a găsi erori în fișierele jurnal

Grep este briceagul elvețian al administratorului Linux atunci când vine vorba de depanarea erorilor din servicii. Majoritatea serviciilor Linux au fișiere jurnal în care raportează erorile. Aceste fișiere jurnal pot fi uriașe, iar grep este o comandă versatilă și rapidă pentru a căuta, de exemplu, adresa IP a unui sistem care se conectează, un șir de erori sau adresa de e-mail a unui utilizator de e-mail afectat în fișierul mail.log.

Exemple:

Căutați conexiuni legate de o anumită adresă de e-mail. Aici, „ user@domain.tld ” se află în fișierul mail.log al serverului.

grep user@domain.tld /var/log/mail.log

Rezultat:

22 aug. 09:45:10 mail dovecot: pop3-login: Autentificare: user=< user@domain.tld >, method=PLAIN, rip=192.168.0.112, lip=78.46.229.46, mpid=17596, TLS, session=<3uoa5ffQovld3Uep> 
22 aug. 09:45:10 mail dovecot: pop3( user@domain.tld )<17596><3uoa5ffQovld3Uep>: Deconectat: Deconectat top=0/0, retr=1/6647, del=1/1, size=6630 
22 aug. 09:45:10 mail dovecot: pop3-login: Autentificare: user=< user@domain.tld >, method=PLAIN, rip=192.168.0.112, lip=78.46.229.46, mpid=17673, TLS, session=<fIIx6PfQkuBd3Uep> 
22 aug. 09:45:10 mail dovecot: pop3( user@domain.tld )<17673><fIIx6PfQkuBd3Uep>: Deconectat: Deconectat top=0/0, retr=0/0, del=0/0, size=0 
22 aug. 09:45:10 mail dovecot: pop3-login: Autentificare: user=< user@domain.tld >, method=PLAIN, rip=192.168.0.112, lip=78.46.229.46, mpid=17868, TLS, session=<bd5L7ffQPsld3Uep> 
22 aug. 09:45:10 mail dovecot: pop3( user@domain.tld )<17868><bd5L7ffQPsld3Uep>: Deconectat: Deconectat top=0/0, retr=0/0, del=0/0, size=0 
22 aug. 09:45:10 mail dovecot: pop3-login: Autentificare: user=< user@domain.tld >, method=PLAIN, rip=192.168.0.112, lip=78.46.229.46, mpid=17964, TLS, session=<sbpn7vfQevpd3Uep> 
22 aug. 09:45:10 mail dovecot: pop3( user@domain.tld )<17964><sbpn7vfQevpd3Uep>: Deconectat: Deconectat top=0/0, retr=0/0, del=0/0, size=0 
22 aug. 09:45:10 mail postfix/smtpd[6932]: NOQUEUE: respingere: RCPT de la necunoscut[1.2.3.4]: 504 5.5.2 <1.2.3.4>: Comanda Helo respinsă: este necesar un nume de gazdă complet calificat; from=< maillist@mailserver.com > to=< user@domain.tld > proto=ESMTP helo=<1.2.3.4>

Pentru a monitoriza continuu un fișier jurnal pentru conexiunile pentru această adresă de e-mail, combinați comenzile tail și grep astfel:

tail -f /var/log/mail.log | grep utilizator@domeniu.tld

Pentru a ieși din funcția de ceas, apăsați tastele [strg] + c.

[mai mult...]