Jak skonfigurować Rclone z Google Drive na serwerze bez monitora (Headless)

Spis treści
Kopia zapasowa serwera (np. Raspberry Pi) bezpośrednio na Google Drive to świetny sposób na zabezpieczenie danych. Najlepszym narzędziem do tego celu jest Rclone. Konfiguracja na serwerze typu „headless” (bez interfejsu graficznego i przeglądarki) bywa jednak problematyczna ze względu na autoryzację Google.
W tym poradniku przejdziemy przez niezawodną metodę: tworzenie własnego projektu Google Cloud Platform (GCP), autoryzację na komputerze lokalnym i przeniesienie konfiguracji na serwer.
Faza 1: Tworzenie projektu GCP (Omijanie limitów)
Korzystanie z domyślnego klucza Rclone oznacza współdzielenie przepustowości z tysiącami użytkowników. Oto jak stworzyć własny klucz:
- Utworzenie projektu: Wejść na Google Cloud Console, rozwinąć listę projektów i wskazać Nowy projekt. Dobrą nazwą jest na przykład „Rclone Backup”.
- Włączenie API: Wyszukać Google Drive API i nacisnąć przycisk Włącz.
- Ekran zgody OAuth:
- Przejść do Interfejsy API i usługi > Ekran zgody OAuth.
- Na karcie Odbiorcy należy wybrać typ użytkownika Zewnętrzny.
- Na karcie Branding należy wypełnić wymagane pola.
- Na karcie Dostęp do danych (Data Access) należy dodać zakres
.../auth/drive, aby rclone mógł zarządzać plikami. - Na karcie Odbiorcy należy dodać własny adres e-mail jako użytkownika testowego.
- Publikacja aplikacji: również na karcie Odbiorcy przyciskiem Opublikuj aplikację (Publish app) trzeba zmienić stan publikacji z Testowanie na produkcyjny. Dopóki aplikacja pozostaje w trybie testowym, token odświeżania wygasa po siedmiu dniach, a nocna kopia zapasowa z Fazy 4 przestaje działać co tydzień. Wyjątek od tej reguły obejmuje wyłącznie podstawowe zakresy imienia, adresu e-mail i profilu, a nie
.../auth/drive. Sama aplikacja pozostaje niezweryfikowana, więc przy udzielaniu zgody pojawia się ostrzeżenie, które trzeba raz zaakceptować przez opcję Zaawansowane.
- Utworzenie danych logowania:
- Następnie należy przejść do karty Klienci w Google Auth Platform.
- Tam nowego klienta OAuth tworzy przycisk Utwórz klienta (Create client).
- Kluczowy krok: Jako typ aplikacji wskazać Aplikacja na komputer (Desktop app). Pozwala to uniknąć problemów z URL przekierowania.
- Skopiować wygenerowany Client ID oraz Client Secret.
Faza 2: Lokalna autoryzacja
Ponieważ serwer nie ma przeglądarki, token powstaje na głównym komputerze (Windows/Mac/Linux).
- Zainstalować Rclone na lokalnym PC.
- Otworzyć terminal i wpisać
rclone config. - Wskazać
n(New remote) i nadać nazwę (np.gdrive). - Wskazać
drivejako typ. - Wkleić Client ID oraz Client Secret.
- Na pytanie
Use auto config?odpowiedzy(Tak). - Otworzy się przeglądarka. Zalogować się i zezwolić na dostęp.
- W terminalu pojawi się blok kodu JSON. Skopiować go w całości.
Faza 3: Konfiguracja serwera
Teraz logujemy się na serwer (przez SSH).
- Zainstalować Rclone (
sudo apt install rclone). - Uruchomić
rclone config. - Stworzyć nowy remote (
n), nadać dokładnie tę samą nazwę co lokalnie (gdrive), wskazaćdrivei wkleić ID oraz Secret. - Przy pytaniu
Use auto config?wskazać tym razemn(Nie). - Przy pytaniu o kod autoryzacji wkleić cały skopiowany wcześniej blok JSON.
- Zapisać. Przetestować, wpisując
rclone lsd gdrive:. Powinny pojawić się foldery z Dysku.
Faza 4: Automatyzacja backupów
Stwórz skrypt o nazwie backup.sh:
#!/bin/bash
BACKUP_DIR="/sciezka/do/lokalnego/backupu"
DATE=$(date +%Y-%m-%d)
REMOTE="gdrive:KopieZapasowe"
# Wykonanie kopii
tar -czf "$BACKUP_DIR/dane_$DATE.tar.gz" /var/www/html
# Wysyłka na Google Drive (Rclone sam utworzy folder)
rclone copy "$BACKUP_DIR/dane_$DATE.tar.gz" "$REMOTE"
# Usuwanie starych kopii z chmury (zostawiamy 7 dni)
rclone delete "$REMOTE" --min-age 7d
Nadać uprawnienia do wykonywania (chmod +x backup.sh) i dodać do harmonogramu (crontab -e), aby uruchamiał się co noc. Serwer jest teraz bezpieczny.
Komentarze: 2
Ostrzeżenie o statusie „testowanie” i siedmiodniowym wygasaniu tokenu jest tu najcenniejsze — to dokładnie ten rodzaj usterki, która wraca co tydzień i za każdym razem wygląda na przypadek.
Pytanie o odtwarzanie serwera: czy przy ponownej instalacji trzeba znów przechodzić przez tryb interaktywny, czy da się przenieść gotową konfigurację?
Da się przenieść — cała konfiguracja mieści się w pliku
rclone.conf, razem z tokenem. Skopiowanie go jest dokładnie tą samą operacją co wklejenie tokenu w trybie interaktywnym, tylko lepiej pasuje do procedury odtwarzania.Dwa warunki. Uprawnienia pliku ograniczone do właściciela, bo trzyma poświadczenie dające dostęp do całego dysku. Oraz świadomość, że token odświeżany jest w tle i zapisywany z powrotem do tego pliku — kopia sprzed miesięcy zadziała tylko dopóki refresh token pozostaje ważny, czyli dopóki aplikacja nie stoi w trybie testowym.
Jest tu jeszcze zależność, którą łatwo przeoczyć: plik konfiguracyjny bywa trzymany w tej samej kopii zapasowej, którą sam umożliwia. Po awarii serwera trzeba go mieć wcześniej — w magazynie sekretów albo poza tym backupem — inaczej klucz do archiwum leży w archiwum.