Bash Pagina 105: Diferență între versiuni
Admin (discuție | contribuții) Fără descriere a modificării |
Admin (discuție | contribuții) |
||
(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.