5 scripturi Bash pe care le poți zilnic ca administrator Linux

Dacă ai petrecut timp gestionând sisteme Linux, știi deja cât de repetitive și consumatoare de timp pot fi anumite activități: verificarea spațiului pe disc, repornirea serviciilor eșuate sau menținerea sistemului actualizat. Dacă faci aceste lucruri manual, devine obositoare, mai ales în cazul mai multor servere.

Scripturile Bash sunt ca niște mici asistenți care te ajută să automatizezi sarcinile obișnuite, să reduci erorile umane și să economisești timp prețios. În loc să rulezi aceleași comenzi de fiecare dată, le poți automatiza — în mod fiabil și constant.

De-a lungul timpului, mulți administratori de sisteme au creat și rafinat scripturi pentru monitorizarea sistemelor, automatizarea întreținerii și intervenția timpurie la probleme serioase.

În acest articol, vei descoperi cinci scripturi Bash simple, dar puternice, utile în administrarea zilnică a sistemelor Linux. Sunt prietenoase cu începătorii și ușor de adaptat pentru mediul tău.

1. Script de monitorizare a utilizări discului

Una dintre cele mai frecvente probleme pe serverele Linux este spațiul insuficient pe disc. Jurnalele cresc, backup-urile se acumulează și, pe neașteptate, aplicația ta cedează din această cauză. Acesta este motivul pentru care acest script verifică utilizarea spațiului și trimite o alertă dacă depășește un prag setat (de exemplu, 80 %):

#!/bin/bash
THRESHOLD=80
EMAIL="admin@example.com"

df -hP | grep -vE '^Filesystem|tmpfs|cdrom' | while read line; do
  USAGE=$(echo $line | awk '{print $5}' | sed 's/%//')
  MOUNTPOINT=$(echo $line | awk '{print $6}')
  
  if [ $USAGE -ge $THRESHOLD ]; then
    echo "Warning: High disk usage on $MOUNTPOINT ($USAGE%)" | mail -s "Disk Alert: $HOSTNAME" $EMAIL
  fi
done

Acest script verifică fiecare partiție iar dacă vreo utilizare trece de 80 %, primești un email. Se poate rula prin cron la fiecare 6 ore.

2. Script de automatizare a actualizărilor sistemului

Menținerea sistemelor la zi este esențială, în special din punct de vedere al securității. Acest script actualizează pachetele, face curățenie și îți trimite raportul prin email:

#!/bin/bash
LOGFILE="/var/log/sys-updates.log"
EMAIL="admin@example.com"

echo "Starting updates on $(date)" >> $LOGFILE
apt update && apt upgrade -y >> $LOGFILE 2>&1
apt autoremove -y >> $LOGFILE 2>&1

tail -20 $LOGFILE | mail -s "System Update Report: $HOSTNAME" $EMAIL

(Pentru utilizatorii RHEL/CentOS, înlocuiți apt cu yum sau dnf.)

Se poate rula acest script zilnic prin cron pentru a menține sistemele actualizate și curate. Raportul primit îți dă siguranța că totul a funcționat corect; în caz de probleme, se analizează jurnalele și se poate face fac rollback, dacă e nevoie.

3. Script de verificare a stării serviciilor

Ca sysadmin, trebuie să știi dacă servicii critice (Apache, Nginx, MySQL) nu pornesc sau cad. Acest script verifică un serviciu, îl repornește dacă e oprit și trimite o notificare:

#!/bin/bash
SERVICES=("apache2" "mysql")
EMAIL="admin@example.com"

for SERVICE in "${SERVICES[@]}"; do
  if ! systemctl is-active --quiet $SERVICE; then
    systemctl start $SERVICE
    echo "$SERVICE was down and has been restarted on $HOSTNAME" | mail -s "Service Restart Alert" $EMAIL
  fi
done

Rulează acest script la fiecare 5 minute via cron. Dacă un serviciu cade, este repornit și primești imediat un email.

4. Script de backup pentru fișiere importante

Backup-urile devin plictisitoare… până când ai nevoie de ele. Acest script arhivează fișierele critice și generează un email cu statusul operației:

#!/bin/bash
BACKUP_DIR="/backup"
SOURCE_DIRS="/etc /var/www /home"
DATE=$(date +%F)
BACKUP_FILE="$BACKUP_DIR/backup-$DATE.tar.gz"
EMAIL="admin@example.com"

tar -czf $BACKUP_FILE $SOURCE_DIRS

if [ $? -eq 0 ]; then
  echo "Backup completed successfully: $BACKUP_FILE" | mail -s "Backup Success - $HOSTNAME" $EMAIL
else
  echo "Backup FAILED!" | mail -s "Backup Failed - $HOSTNAME" $EMAIL
fi

Acest script te poate salvat de mai multe ori când ștergi sau se șterg fișiere din greșeală. Păstrează 7 zile de backup și ruleză un script de rotire pentru fișierele vechi. Poți extinde scriptul pentru a încărca backup-uri pe servere remote sau în cloud.

5. Script de monitorizare a autentificărilor utilizatorilor

Acest script verifică cine se conectează pe server și trimite alertă dacă apar sesiuni noi:

#!/bin/bash
LOGFILE="/var/log/auth.log"
LAST_RUN_FILE="/tmp/last_run_time"
EMAIL="admin@example.com"

if [ ! -f $LAST_RUN_FILE ]; then
  date --date='5 minutes ago' +%s > $LAST_RUN_FILE
fi

LAST_RUN=$(cat $LAST_RUN_FILE)
NOW=$(date +%s)

awk -v last=$LAST_RUN -v now=$NOW '
  $0 ~ /session opened for user/ {
    cmd = "date -d \""$1" "$2" "$3"\" +%s"
    cmd | getline t
    close(cmd)
    if (t >= last && t <= now) { print $0 } } ' $LOGFILE | mail -s "Login Alert - $HOSTNAME" $EMAIL echo $NOW > $LAST_RUN_FILE

Astfel știi exact cine s-a conectat și când, util mai ales în serverele de producție pentru a detecta acces neautorizat. Poți adăuga blocare de IP sau alte alarme în extensie.

Concluzie

Scripturile Bash menționate îmbunătățesc considerabil modul în care administrezi sistemele Linux. Chiar dacă sunt simple, ele automatizează sarcini esențiale care mențin serverele stabile, securizate și funcționale.

Pentru a merge mai departe, poți explora automatizare completă a verificărilor sănătății: CPU, memorie, disc și altele, folosind Bash + cron.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *