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
doneAcest 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
doneRulează 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
fiAcest 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_FILEAstfel ș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.




