August 05, 2026 · by Alex M.
Una dintre cele mai mari greșeli pe care le fac administratorii de server începători — și uneori chiar cei experimentați — este să amâne configurarea backup-urilor. „O fac mâine" devine „am pierdut totul ieri". Pe un VPS Linux, nu există un buton magic care să-ți salveze automat datele dacă nu îl configurezi tu. Vestea bună: procesul este mai simplu decât crezi, iar acest ghid îți explică totul pas cu pas.
Înainte de a intra în tehnicalități, hai să clarificăm de ce backup-urile manuale nu sunt suficiente:
rm -rf fără cale corectă) sau un update eșuat pot șterge date critice în secunde.O strategie solidă de backup urmează regula 3-2-1: 3 copii ale datelor, pe 2 suporturi diferite, dintre care 1 off-site (externă).
Pentru acest ghid vei folosi unelte native Linux, disponibile pe orice distribuție (Ubuntu, Debian, CentOS, AlmaLinux):
tar — pentru arhivarea directoarelorrsync — pentru sincronizare incrementală eficientăcron — pentru programarea automată a sarcinilormysqldump — pentru exportul bazelor de date MySQL/MariaDBrclone — pentru upload automat în cloud (Google Drive, S3, Backblaze)Conectează-te la VPS prin SSH și creează o structură organizată:
mkdir -p /backup/{files,databases,logs}
chmod 700 /backup
Directorul /backup va conține:
- /backup/files — arhivele fișierelor de pe server
- /backup/databases — dump-urile MySQL
- /backup/logs — jurnalele operațiunilor de backup
tarCreează fișierul /usr/local/bin/backup-files.sh:
nano /usr/local/bin/backup-files.sh
Adaugă conținutul următor:
#!/bin/bash
DATE=$(date +%Y-%m-%d)
BACKUP_DIR="/backup/files"
SOURCE_DIRS="/var/www /etc /home"
LOG="/backup/logs/files-$DATE.log"
RETENTION_DAYS=7
echo "[$(date)] Incepe backup fisiere..." >> "$LOG"
tar -czf "$BACKUP_DIR/files-$DATE.tar.gz" $SOURCE_DIRS 2>> "$LOG"
if [ $? -eq 0 ]; then
echo "[$(date)] Backup reusit: files-$DATE.tar.gz" >> "$LOG"
else
echo "[$(date)] EROARE la backup!" >> "$LOG"
fi
# Sterge backup-uri mai vechi de $RETENTION_DAYS zile
find "$BACKUP_DIR" -name "*.tar.gz" -mtime +$RETENTION_DAYS -delete
echo "[$(date)] Curatare arhive vechi finalizata." >> "$LOG"
Salvează și fă scriptul executabil:
chmod +x /usr/local/bin/backup-files.sh
Ce face scriptul:
- Arhivează directoarele /var/www, /etc și /home — acolo unde stau site-urile, configurațiile și datele utilizatorilor
- Salvează arhiva cu data în nume (ex: files-2025-01-15.tar.gz)
- Șterge automat arhivele mai vechi de 7 zile pentru a economisi spațiu
- Înregistrează fiecare operație în log
Creează /usr/local/bin/backup-databases.sh:
#!/bin/bash
DATE=$(date +%Y-%m-%d)
BACKUP_DIR="/backup/databases"
DB_USER="root"
DB_PASS="parola_ta_mysql"
LOG="/backup/logs/db-$DATE.log"
RETENTION_DAYS=7
echo "[$(date)] Incepe backup baze de date..." >> "$LOG"
# Exporta fiecare baza de date separat
for DB in $(mysql -u"$DB_USER" -p"$DB_PASS" -e "SHOW DATABASES;" 2>/dev/null | grep -Ev "(Database|information_schema|performance_schema|sys)"); do
mysqldump -u"$DB_USER" -p"$DB_PASS" "$DB" 2>> "$LOG" | gzip > "$BACKUP_DIR/$DB-$DATE.sql.gz"
echo "[$(date)] Backup finalizat pentru: $DB" >> "$LOG"
done
find "$BACKUP_DIR" -name "*.sql.gz" -mtime +$RETENTION_DAYS -delete
echo "[$(date)] Curatare dump-uri vechi finalizata." >> "$LOG"
Sfat de securitate: Nu lăsa parola MySQL în clar în script dacă serverul are mai mulți utilizatori. Folosește fișierul
~/.my.cnfcu permisiuni restrictive:
ini [client] user=root password=parola_ta_mysql
Apoi:chmod 600 ~/.my.cnfși elimină variabileleDB_USER/DB_PASSdin script.
Fă scriptul executabil:
chmod +x /usr/local/bin/backup-databases.sh
rsync (opțional dar recomandat)Dacă ai un al doilea server sau un storage remote, rsync este ideal pentru sincronizare rapidă și eficientă — trimite doar fișierele modificate:
rsync -avz --delete /backup/ user@server-remote:/backup-extern/
Poți adăuga această comandă într-un al treilea script sau direct în crontab.
cronAcesta este pasul care transformă backup-urile manuale în backup-uri automate. Deschide crontab-ul pentru root:
crontab -e
Adaugă liniile:
# Backup fisiere - zilnic la 02:00
0 2 * * * /usr/local/bin/backup-files.sh
# Backup baze de date - zilnic la 03:00
0 3 * * * /usr/local/bin/backup-databases.sh
Explicația sintaxei cron: minut oră zi_luna lună zi_săptămână comandă
0 2 * * * — în fiecare zi, la ora 02:000 3 * * * — în fiecare zi, la ora 03:00Backup-urile sunt programate noaptea pentru a nu afecta performanța serverului în orele de vârf.
rclonePentru a respecta regula 3-2-1, backup-urile trebuie să existe și off-site. rclone permite sincronizarea cu zeci de provideri cloud.
Instalare:
curl https://rclone.org/install.sh | sudo bash
Configurare interactivă (exemplu pentru Backblaze B2 sau Google Drive):
rclone config
Urmează pașii din wizard, alege providerul și autentifică-te. Apoi adaugă în crontab:
# Upload backup in cloud - zilnic la 04:00
0 4 * * * rclone sync /backup/ backblaze:bucket-backup-vps/ --log-file=/backup/logs/rclone.log
Un backup pe care nu l-ai testat niciodată este ca o asigurare cu clauze misterioase. Verifică lunar că:
Arhivele există și nu sunt corupte:
bash
tar -tzf /backup/files/files-$(date +%Y-%m-%d).tar.gz | head -20
Dump-urile MySQL sunt restaurabile:
bash
gunzip -c /backup/databases/numebaza-$(date +%Y-%m-%d).sql.gz | mysql -u root -p test_restore
Log-urile nu conțin erori:
bash
grep -i eroare /backup/logs/*.log
Monitorizează periodic cât spațiu consumă backup-urile:
du -sh /backup/*
df -h /
Dacă spațiul pe VPS este limitat, poți reduce RETENTION_DAYS la 3-5 zile și te bazezi pe cloud pentru retenție mai lungă.
~/.my.cnf sau variabile de mediu securizate.Configurarea backup-urilor automate pe un VPS Linux nu necesită soluții scumpe sau complicate. Cu tar, mysqldump, cron și opțional rclone, poți construi în mai puțin de o oră un sistem robust care să-ți protejeze datele zilnic.
Cheia este să nu amâi: fiecare zi fără backup este o zi în care riști să pierzi totul.
Dacă administrezi un VPS și preferi să te concentrezi pe afacerea ta în loc să gestionezi backup-urile manual, CLIQHOST oferă VPS SSD cu opțiuni de backup gestionat și suport tehnic disponibil non-stop.
Recenzii reale de la clienți care au ales CLIQHOST pentru performanță, fiabilitate și suport tehnic.
"Am mutat magazinul online de pe un host din străinătate și diferența e uriașă — paginile se încarcă instant, iar suportul răspunde în minute, în română."
"Am migrat 12 site-uri de clienți la CLIQHOST. Migrare gratuită, zero downtime, iar setup-ul cPanel e exact ce avea nevoie echipa mea. Recomand cu încredere."
"VPS-ul nostru NVMe face față spike-urilor de trafic fără probleme. Full root, datacenter local și facturare în MDL — tot ce voiam de la un provider."