August 05, 2026 · by CLIQHOST
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.
"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."
"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."
"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."