Bash Pagina 105: Diferență între versiuni

De la Wiki Linux Advanced
Sari la navigare Sari la căutare
Fără descriere a modificării
 
(Nu s-a afișat o versiune intermediară efectuată de același utilizator)
Linia 1: Linia 1:
== '''trap''' elementar pentru ''cleanup'' ==
== '''trap''' elementar pentru ''cleanup'' ==


  #!/bin/bash
  trap "rm -f /tmp/output.txt" EXIT
  apt -y update > /tmp/output.txt
  if grep -qi "kernel" /tmp/output.txt; then
    mail -s "KERNEL UPDATED" user@domeniu.com < /tmp/output.txt
  fi


Trap: <code>trap "rm -f /tmp/output.txt" EXIT</code>
Comanda trap setează o acțiune care va fi executată când scriptul iese. Aici, trap va șterge fișierul temporar /tmp/output.txt la ieșirea din script, asigurându-se că fișierul nu rămâne pe disc după rularea scriptului.
Actualizare: <code>apt -y update > /tmp/output.txt</code>
Comanda <code>apt -y update</code> actualizează lista de pachete disponibile. Opțiunea -y face ca apt să accepte toate întrebările de tip „yes” automat.
Redirecționarea <code>> /tmp/output.txt</code> trimite ieșirea comenzii în fișierul temporar /tmp/output.txt, unde va fi analizată în pașii următori.
Căutarea în ieșire: <code>if grep -qi "kernel" /tmp/output.txt; then</code>
<code>grep -qi "kernel" /tmp/output.txt</code> caută cuvântul "kernel" în fișierul /tmp/output.txt.
* Opțiunea ''-q'' face ca grep să fie silențios (nu afișează nimic, doar întoarce codul de ieșire 0 dacă găsește o potrivire).
* Opțiunea ''-i'' permite căutarea să fie insensibilă la majuscule.
Dacă "kernel" este găsit în ieșire, înseamnă că kernel-ul a fost actualizat, deci condiția if va evalua ca adevărată și va executa comanda din blocul then.
Trimiterea emailului: <code>mail -s "KERNEL UPDATED" user@domeniu.com < /tmp/output.txt</code>
Dacă kernel-ul a fost actualizat, comanda mail este folosită pentru a trimite un email la user@domeniu.com cu subiectul "KERNEL UPDATED".
mail -s specifică subiectul emailului, iar user@domeniu.com este adresa destinatarului.
<code>< /tmp/output.txt</code> trimite conținutul fișierului /tmp/output.txt ca text al mesajului.
'''Notă:''' Pentru ca acest script să funcționeze corect, utilitarele ''apt'' și ''mail'' trebuie să fie configurate și disponibile pe sistemul unde este rulat.


[[Bash_Pagina_104|Pagina anterioară]] | [[Bash_Pagina_106|Următoarea pagină]]
[[Bash_Pagina_104|Pagina anterioară]] | [[Bash_Pagina_106|Următoarea pagină]]

Versiunea curentă din 30 octombrie 2024 13:24

trap elementar pentru cleanup

 #!/bin/bash
 trap "rm -f /tmp/output.txt" EXIT
 apt -y update > /tmp/output.txt
 if grep -qi "kernel" /tmp/output.txt; then
   mail -s "KERNEL UPDATED" user@domeniu.com < /tmp/output.txt
 fi

Trap: trap "rm -f /tmp/output.txt" EXIT

Comanda trap setează o acțiune care va fi executată când scriptul iese. Aici, trap va șterge fișierul temporar /tmp/output.txt la ieșirea din script, asigurându-se că fișierul nu rămâne pe disc după rularea scriptului. Actualizare: apt -y update > /tmp/output.txt

Comanda apt -y update actualizează lista de pachete disponibile. Opțiunea -y face ca apt să accepte toate întrebările de tip „yes” automat. Redirecționarea > /tmp/output.txt trimite ieșirea comenzii în fișierul temporar /tmp/output.txt, unde va fi analizată în pașii următori. Căutarea în ieșire: if grep -qi "kernel" /tmp/output.txt; then

grep -qi "kernel" /tmp/output.txt caută cuvântul "kernel" în fișierul /tmp/output.txt.

  • Opțiunea -q face ca grep să fie silențios (nu afișează nimic, doar întoarce codul de ieșire 0 dacă găsește o potrivire).
  • Opțiunea -i permite căutarea să fie insensibilă la majuscule.

Dacă "kernel" este găsit în ieșire, înseamnă că kernel-ul a fost actualizat, deci condiția if va evalua ca adevărată și va executa comanda din blocul then.

Trimiterea emailului: mail -s "KERNEL UPDATED" user@domeniu.com < /tmp/output.txt

Dacă kernel-ul a fost actualizat, comanda mail este folosită pentru a trimite un email la user@domeniu.com cu subiectul "KERNEL UPDATED". mail -s specifică subiectul emailului, iar user@domeniu.com este adresa destinatarului.

< /tmp/output.txt trimite conținutul fișierului /tmp/output.txt ca text al mesajului.

Notă: Pentru ca acest script să funcționeze corect, utilitarele apt și mail trebuie să fie configurate și disponibile pe sistemul unde este rulat.

Pagina anterioară | Următoarea pagină