Acest ghid îți va arăta cum să transformi orice server Linux într-o fortăreață, salvând datele automat în Google Drive. Vom folosi o metodă hibridă (Streaming pentru fișiere mici/cod + Sync pentru fișiere masive) pentru a nu consuma absolut deloc spațiu pe SSD-ul serverului în timpul arhivării.
🛠️ Cerințe preliminare:
- Un server cu Linux (Ubuntu/Debian) și acces la terminal (SSH).
- Un cont de Google (preferabil cu spațiu suficient).
Pasul 1: Crearea "Cheilor" API în Google Cloud (Interfața Nouă)
De ce facem asta? Rclone are o setare standard, dar e lentă pentru că o împart mii de oameni. Creând propriile chei, ai o conexiune VIP dedicată, cu viteză maximă.
1. Crearea Proiectului:
- Mergi pe Google Cloud Console și loghează-te.
- Sus în bară, apasă pe Select a project -> New Project.
- Numește-l
ServerBackup și apasă Create. (Asigură-te că e selectat sus după creare).
2. Activarea Google Drive API:
- În meniul lateral stânga (☰), mergi la APIs & Services -> Library.
- Caută
Google Drive API, dă click pe el și apasă butonul Enable.
3. Configurarea Ecranului de Autorizare (OAuth consent screen):
- Mergi la APIs & Services -> OAuth consent screen.
- Alege External și apasă Create.
- La App information: scrie un nume (ex:
RcloneBackup) și selectează adresa ta de email la User support email și la Developer contact information (jos de tot). Restul lasă gol. Apasă Save and Continue.
- La Scopes, nu modifica nimic. Dă Save and Continue.
4. Adăugarea utilizatorului (PAS CRITIC!):
- Pentru că aplicația e în modul "Testing", Google blochează accesul dacă nu specifici cine o folosește (Eroarea 403 Access Denied).
- La secțiunea Test users, apasă + ADD USERS.
- Scrie adresa ta exactă de Gmail (cea pe care ai Google Drive-ul). Apasă Add, apoi Save and Continue.
- Sfat: Lasă aplicația în stadiul de „Testing”. Nu apăsa pe „Publish App”.
5. Generarea Cheilor:
- În meniul stânga, dă click pe Credentials.
- Sus, apasă pe + CREATE CREDENTIALS și alege OAuth client ID.
- La Application type, alege Desktop app (foarte important!). Numește-o
Rclone și apasă Create.
- 🎉 Copiază într-un Notepad cele două coduri generate:
Client ID și Client Secret.
Pasul 2: Instalarea și Configurarea Rclone pe Server
1. Instalarea:
curl https://rclone.org/install.sh | sudo bash
2. Pornirea asistentului:
rclone config
3. Setările în asistent:
- Răspunde cu
n (New remote)
- Name:
GoogleDrive (exact așa, fără spații)
- Storage: Scrie
drive (sau numărul corespunzător pentru Google Drive).
- Client ID: (Lipește codul de la Pasul 1)
- Client Secret: (Lipește codul secret de la Pasul 1)
- Scope:
1 (Full access).
- Service account file: (lasă gol, apasă Enter)
- Edit advanced config:
n
- Use auto config:
n (Alegem "n" pentru că suntem pe un server fără browser).
4. Autorizarea (Trucul pentru servere fără interfață grafică):
- Rclone îți va da o comandă lungă care începe cu
rclone authorize "drive"....
- Descarcă Rclone pe PC-ul tău de acasă (Windows/Mac). Deschide un terminal (CMD) pe PC, dă paste la acea comandă și apasă Enter.
- Se va deschide browserul. Loghează-te cu Google și dă "Allow".
- În terminalul de pe PC va apărea un cod lung (Token). Copiază-l!
- Mergi înapoi pe serverul Linux și dă paste la acel Token.
- Configure this as a Shared Drive (Team Drive)?
n
- Keep this "GoogleDrive" remote?
y
- Quit config:
q
Pasul 3: Scriptul "Magic" de Backup
Acest script ambalează codul sursă "din zbor" în RAM (fără a ocupa discul) și sincronizează doar fișierele gigantice modificate.
1. Creează fișierul:
nano /root/backup_server.sh
2. Lipește acest cod (Ajustează directoarele dacă e nevoie):
#!/bin/bash
# --- CONFIGURARE ---
DATA_AZI=$(date +"%Y-%m-%d_%H-%M")
DRIVE_DESTINATIE="GoogleDrive:BackupsServer"
echo "--- START BACKUP TOTAL (STREAMING) $DATA_AZI ---"
# 1. BAZA DE DATE (MariaDB -> RAM -> Cloud)
echo "[1/3] Export baze de date..."
mysqldump -u root --all-databases | gzip | rclone rcat $DRIVE_DESTINATIE/Sistem/db_full_$DATA_AZI.sql.gz
# 2. ARHIVA ON-THE-FLY (Fără folderele de date masive)
# Această comandă urcă totul într-un singur fișier .tar.gz, păstrând permisiunile Linux
echo "[2/3] Streaming Arhiva Sistem (Viteza Maxima)..."
tar -cz \
--exclude="/raid/playtube/upload/videos" \
--exclude="/raid/nextcloud/data" \
--exclude="/raid/storage" \
--exclude="/raid/share" \
--exclude="/raid/torrent" \
--exclude="*/.cache" \
/etc /var/www /opt /root /home /raid | rclone rcat $DRIVE_DESTINATIE/Sistem/Sistem_Plus_Cod_$DATA_AZI.tar.gz
# 3. SYNC PENTRU DATELE MASIVE (Sincronizare diferențială 1:1)
echo "[3/3] Sincronizare Date Mari (Nextcloud, Storage, Share)..."
rclone sync /raid/nextcloud/data $DRIVE_DESTINATIE/Raid_Data/nextcloud_data/ --transfers 16 --checkers 32 --progress
rclone sync /raid/storage $DRIVE_DESTINATIE/Raid_Data/storage/ --transfers 16 --checkers 32 --progress
rclone sync /raid/share $DRIVE_DESTINATIE/Raid_Data/share/ --transfers 16 --checkers 32 --progress
# 4. CURĂȚENIE (Păstrăm istoricul arhivelor doar pe ultimele 14 zile)
rclone delete $DRIVE_DESTINATIE/Sistem/ --min-age 14d
echo "--- BACKUP FINALIZAT CU SUCCES! ---"
(Salvează apăsând Ctrl+O, Enter, apoi ieși cu Ctrl+X)
3. Fă scriptul executabil:
chmod +x /root/backup_server.sh
Pasul 4: Automatizarea (Pilotul Automat)
Spunem serverului să ruleze totul singur, în fiecare noapte.
1. Deschide programatorul Cron:
crontab -e
2. Adaugă linia de mai jos la sfârșitul fișierului:
0 3 * * * /root/backup_server.sh > /var/log/backup_server.log 2>&1
(Se va rula zilnic la ora 03:00 AM. Pentru a verifica dimineața dacă a funcționat, poți citi logul cu comanda: cat /var/log/backup_server.log)
☢️ Arma Secretă: Curățarea instantanee a Google Drive
Dacă vreodată vrei să ștergi TOT backup-ul din Google Drive instantaneu, ocolind "Coșul de Gunoi" care ține spațiul blocat 30 de zile, folosește această comandă din terminal:
rclone purge GoogleDrive:BackupsServer --drive-use-trash=false
(Atenție: Această comandă rade complet folderul, fără posibilitate de recuperare!)