Blog

Automatizare backup Linux cu rsync, cron jobs și stocare în cloud

Optimizare SEO·
Automatizare backup Linux cu rsync, cron jobs și stocare în cloud

Automatizarea backup-urilor pe Linux cu rsync și cron jobs este una dintre cele mai importante sarcini de administrare a serverelor. Un server fără backup automat nu este un server de producție — e...

Automatizarea backup-urilor pe Linux cu rsync și cron jobs este una dintre cele mai importante sarcini de administrare a serverelor. Un server fără backup automat nu este un server de producție — este un accident în așteptare.

rsync este instrumentul standard pentru backup incremental pe Linux, datorită eficienței sale în transferul doar a fișierelor modificate față de backup-ul anterior.

Automatizare backup Linux cu rsync, cron jobs și stocare în cloud

Principiul de bază al unei strategii de backup solide este regula 3-2-1: 3 copii ale datelor, pe 2 medii diferite, cu 1 copie off-site (în cloud sau locație fizică diferită). rsync combinat cu un furnizor cloud acoperă toate aceste cerințe.

rsync, concepte de bază

rsync sincronizează fișiere și directoare local sau între servere prin SSH. Avantajul față de cp sau scp este că transferă doar diferențele față de backup-ul anterior, economisind timp și lățime de bandă.

# Backup local simplu
rsync -avz --delete /sursa/ /destinatie/

# Backup catre server remote prin SSH
rsync -avz --delete -e "ssh -p 22" /sursa/ user@server-backup:/destinatie/

# Parametri explicati:
# -a: arhivare (pastreaza permisiuni, timestamps, symlinks)
# -v: verbose (afiseaza fisierele procesate)
# -z: compresie in transfer
# --delete: sterge din destinatie fisierele sterse din sursa

Script de backup complet pentru server web

Scriptul următor realizează backup-ul fișierelor site-urilor și al bazelor de date MySQL, cu păstrarea ultimelor 7 backup-uri zilnice.

#!/bin/bash
# /home/backup/scripts/backup-daily.sh

BACKUP_DIR="/home/backup/daily"
WEB_DIR="/var/www"
MYSQL_PASS="parola_mysql"
DATE=$(date +%Y-%m-%d)
RETENTION_DAYS=7

# Creare director pentru ziua curenta
mkdir -p "$BACKUP_DIR/$DATE"

# Backup fisiere web
rsync -az --delete "$WEB_DIR/" "$BACKUP_DIR/$DATE/web/"

# Backup baze de date MySQL
DATABASES=$(mysql -u root -p"$MYSQL_PASS" -e "SHOW DATABASES;" | grep -v "Database\|information_schema\|performance_schema\|mysql\|sys")
for DB in $DATABASES; do
    mysqldump -u root -p"$MYSQL_PASS" --single-transaction "$DB" | gzip > "$BACKUP_DIR/$DATE/$DB.sql.gz"
    echo "Backup DB: $DB"
done

# Stergere backup-uri mai vechi de 7 zile
find "$BACKUP_DIR" -maxdepth 1 -type d -mtime +$RETENTION_DAYS -exec rm -rf {} \;

echo "Backup complet: $DATE"

Configurarea cron job-ului

Editați crontab-ul cu crontab -e ca root pentru a programa rularea automată.

# Backup zilnic la ora 02:00
0 2 * * * /home/backup/scripts/backup-daily.sh >> /home/backup/logs/backup.log 2>&1

# Backup saptamanal duminica la 01:00 (arhiva completa)
0 1 * * 0 /home/backup/scripts/backup-weekly.sh >> /home/backup/logs/backup-weekly.log 2>&1

Trimiterea backup-urilor în cloud cu rclone

rclone este instrumentul de referință pentru sincronizarea fișierelor cu furnizorii cloud. Suportă nativ Amazon S3, Google Drive, Backblaze B2, Dropbox și peste 40 de alți furnizori.

# Instalare rclone
curl https://rclone.org/install.sh | sudo bash

# Configurare (interactiv)
rclone config

# Sincronizare backup local cu S3
rclone sync /home/backup/daily remote:bucket-backup/daily --progress

# Adaugare in scriptul de backup (dupa backup local):
rclone sync "$BACKUP_DIR/$DATE" remote:bucket-backup/"$DATE" --progress
echo "Upload cloud complet"

Configurare Backblaze B2 (alternativă economică față de S3)

Backblaze B2 oferă stocare la 0,006$/GB/lună, de 4 ori mai ieftin decât Amazon S3. Este compatibil cu API-ul S3, deci funcționează cu orice tool compatibil S3.

# Configurare rclone pentru B2
# rclone config -> New remote -> b2 -> introduceți Account ID si Application Key

Notificări email pentru backup-uri eșuate

Un backup care eșuează în tăcere este la fel de rău ca absența backup-ului. Adăugați notificări email la finalul scriptului.

if [ $? -eq 0 ]; then
    echo "Backup $DATE reusit" | mail -s "BACKUP OK - $(hostname)" admin@domeniu.ro
else
    echo "EROARE backup $DATE pe $(hostname)" | mail -s "BACKUP ESUAT - URGENT" admin@domeniu.ro
fi

Testarea restaurării

Backup-ul necontestat nu este un backup — este un experiment. Testați restaurarea lunar, restaurând un director sau o bază de date pe un server de test.

# Restaurare baza de date din backup
gunzip -c /home/backup/daily/2026-05-15/wordpress_db.sql.gz | mysql -u root -p wordpress_db

# Verificare integritate backup
rsync -avz --dry-run /home/backup/daily/2026-05-15/web/ /var/www-test/

Concluzie

Un sistem de backup automat cu rsync, cron și stocare cloud se configurează în câteva ore și oferă protecție completă împotriva pierderii datelor. Costul stocării cloud pentru backup-urile unui server web tipic este de câțiva lei pe lună.

Echipa opti-seo.ro oferă și consultanță pentru configurarea infrastructurii de server și implementarea politicilor de backup.

Aveți nevoie de servicii SEO?

Solicitați o analiză gratuită a site-ului și o ofertă personalizată, fără obligații.

Cere o ofertă

Articole similare