Skip to main content

Cyber AI România

Cum scrii primul script Bash util: verificare spațiu, memorie și servicii active

Un script Bash bun pentru început trebuie să facă ceva concret, repetabil și sigur. Nu trebuie să șteargă fișiere, să modifice permisiuni sau să repornească servicii automat. Un exercițiu foarte util este un script care verifică rapid trei lucruri importante pe orice sistem Linux: spațiul pe disc, memoria disponibilă și starea unor servicii.

Bash este shell-ul prin care poți rula comenzi manual, dar și comenzi salvate într-un fișier. Practic, transformi o verificare repetitivă într-un mic instrument de administrare. Pentru un VPS, un laborator Linux sau un server de test, un astfel de script te ajută să verifici sistemul în mai puțin de un minut.

Ce va face scriptul

Scriptul de mai jos va verifica:

  • cât este ocupată partiția /;
  • câtă memorie RAM mai este disponibilă;
  • dacă servicii precum ssh, nginx sau mysql rulează;
  • va afișa rezultatul în terminal;
  • va salva un raport într-un fișier .log.

Nu va modifica sistemul. Doar citește informații.

Creează folderul de lucru

Lucrează într-un folder separat:

mkdir -p ~/scripturi-linux
cd ~/scripturi-linux

Creează fișierul:

nano verificare-sistem.sh

Scriptul complet

Copiază scriptul de mai jos:

#!/usr/bin/env bash

DISK_LIMIT=80
MEM_LIMIT=500
SERVICES=("ssh" "nginx" "mysql")
REPORT_DIR="$HOME/scripturi-linux/rapoarte"
REPORT_FILE="$REPORT_DIR/raport-$(date +%Y-%m-%d_%H-%M-%S).log"

mkdir -p "$REPORT_DIR"

print_line() {
    echo "----------------------------------------" | tee -a "$REPORT_FILE"
}

echo "Raport verificare sistem - $(date)" | tee "$REPORT_FILE"
print_line

echo "1. Verificare spatiu pe disc" | tee -a "$REPORT_FILE"

DISK_USED=$(df / | awk 'NR==2 {gsub("%","",$5); print $5}')

echo "Partitia / este folosita: ${DISK_USED}%" | tee -a "$REPORT_FILE"

if [ "$DISK_USED" -ge "$DISK_LIMIT" ]; then
    echo "ATENTIE: spatiul pe disc este peste ${DISK_LIMIT}%." | tee -a "$REPORT_FILE"
else
    echo "OK: spatiul pe disc este sub limita setata." | tee -a "$REPORT_FILE"
fi

print_line

echo "2. Verificare memorie RAM" | tee -a "$REPORT_FILE"

MEM_AVAILABLE=$(free -m | awk '/Mem:/ {print $7}')

echo "Memorie disponibila: ${MEM_AVAILABLE} MB" | tee -a "$REPORT_FILE"

if [ "$MEM_AVAILABLE" -lt "$MEM_LIMIT" ]; then
    echo "ATENTIE: memoria disponibila este sub ${MEM_LIMIT} MB." | tee -a "$REPORT_FILE"
else
    echo "OK: memoria disponibila este peste limita setata." | tee -a "$REPORT_FILE"
fi

print_line

echo "3. Verificare servicii" | tee -a "$REPORT_FILE"

for SERVICE in "${SERVICES[@]}"; do
    if systemctl is-active --quiet "$SERVICE"; then
        echo "OK: serviciul $SERVICE ruleaza." | tee -a "$REPORT_FILE"
    else
        echo "ATENTIE: serviciul $SERVICE nu ruleaza." | tee -a "$REPORT_FILE"
    fi
done

print_line

echo "Raport salvat in: $REPORT_FILE"

Salvează cu Ctrl + O, Enter, apoi ieși cu Ctrl + X.

Fă scriptul executabil

Verifică fișierul:

ls -l verificare-sistem.sh

Apoi oferă drept de executare:

chmod u+x verificare-sistem.sh

Rulează scriptul:

./verificare-sistem.sh

Dacă serviciul nginx sau mysql nu există pe sistemul tău, scriptul va afișa că nu rulează. Nu este o problemă. Lista trebuie adaptată la serverul real.

De exemplu, pentru un server cu Apache și MariaDB, schimbă linia:

SERVICES=("ssh" "nginx" "mysql")

în:

SERVICES=("ssh" "apache2" "mariadb")

Cum citești rezultatele

Pentru spațiu, scriptul folosește:

df /

Apoi extrage procentul de utilizare pentru partiția principală. Dacă trece de 80%, primești avertizare. Pe un server real, 80% este un prag bun pentru atenționare, nu pentru panică. La 90-95%, trebuie să investighezi rapid ce ocupă spațiu.

Pentru memorie, scriptul folosește:

free -m

Coloana available este importantă deoarece arată memoria care poate fi folosită de aplicații fără presiune majoră. Pragul de 500 MB este potrivit pentru un VPS mic de test. Pe un server cu trafic real, poți seta 1000 MB sau mai mult.

Pentru servicii, scriptul folosește:

systemctl is-active --quiet nume-serviciu

Dacă serviciul rulează, rezultatul este OK. Dacă nu rulează, primești avertizare. Scriptul nu repornește serviciul automat, ceea ce este bine pentru început. Pe servere reale, repornirea automată fără diagnostic poate ascunde problema.

Verifică scriptul cu ShellCheck

Instalează ShellCheck:

sudo apt update
sudo apt install shellcheck

Apoi rulează:

shellcheck verificare-sistem.sh

Dacă primești avertismente, citește-le. ShellCheck este util pentru greșeli de quoting, variabile scrise greșit sau practici nesigure.

Cum îl folosești practic

Poți rula scriptul manual înainte de update-uri:

./verificare-sistem.sh

Poți păstra rapoartele în:

~/scripturi-linux/rapoarte/

Și poți vedea ultimul raport cu:

ls -lt ~/scripturi-linux/rapoarte/ | head

Acesta este un prim script Bash util deoarece îți oferă o rutină clară: verifici disk, RAM și servicii fără să modifici sistemul. De aici poți extinde scriptul cu verificare de uptime, porturi deschise, loguri recente sau backup. Important este să păstrezi logica sigură: întâi verifici, apoi decizi ce modifici.

Surse folosite

GNU Bash Reference Manual — explicații despre Bash ca shell și limbaj pentru comenzi/scripturi.
Linux man-pages — df, verificarea spațiului pe sisteme de fișiere.
Linux man-pages — free, verificarea memoriei RAM și swap.
Linux man-pages — systemctl, controlul și verificarea serviciilor systemd.
ShellCheck Wiki — verificarea statică a scripturilor shell.

Facebook
X
WhatsApp

Te-ar putea interesa si: