Keďže svoje Raspberry Pi využívam okrem pozerania filmov a seriálov na TV aj na zálohu rôznych dát, dlhšie som hľadal spôsob, ako na neho zálohovať aj obsah Dropboxu.

Dropbox a asi ani žiadne populárne cloudové úložisko nemá oficiálneho klienta pre Raspberry Pi (a celkovo ARM). Naštastie existuje open-source aplikácia, ktorá synchronizáciu umožňuje.

Rclone

Rclone je konzolová utilita pre Windows, macOS, Linux (vrátane ARM a ARM64) na sychronizácia dát s rôznymi cloudovými úložiskami.

Podporovaných úložísk je naozaj veľa, samozrejme nechýba Box, Dropbox, OneDrive, Google Drive alebo generické protokoly ako SFTP alebo WebDav.

Synchronizácia je jednosmerná, teda z cloudového úložiska na lokálny disk alebo naopak.

Existúju však projekty ako rclonesync V2 postavené na rclone, ktoré riešia obojsmernú synchronizáciu.

Teoreticky tak môžete nahradiť s trochou skriptovania oficilálneho klienta aj na počítači (a napríklad obísť limit Dropboxu na 3 zariadenia),

Použitie s Raspberry Pi

Inštalácia

Inštalácia rclone na Raspberry Pi závisí od ditribúcie, ktorú používate. Najjednoduchší spôsob je

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

Konfigurácia

Po inštalácií je nutná konfigurácia, ktorú vykonáte príkazom rclone config.

Presné kroky sa líšia podľa konkrétneho cloudového úložiska, pre Dropbox to je zadanie názvu, otvorenie pripraveného odkazu na počítači s prehliadačom a skopírovanie dát späť do Raspberry Pi po overení voči Dropboxu.

Skript na synchronizáciu

Rclone nevie nijak automaticky synchronizovať obsah Dropboxu alebo iného cloudového úložiska, musíte si na to sami vytvoriť skript. Samotný rclone sa v tomto skripte použije na synchronizáciu konkretneho adresára. Teda napríklad

rclone sync --stats-one-line -P Dropbox:Apps /media/mybook/Dropbox/Apps/

jednorazovo a jednosmerne synchronizuje adresár Apps v mojom Dropboxe s adreárom Apps na externom disku pripojenom k môjmu Raspberry Pi. Použité parametre slúžia na zobrazenie jendoriadkových štatistík a veľkosti prenášaných dát a podobne

165.114k / 165.114 kBytes, 100%, 6.934 kBytes/s, ETA 0s

Môj sync-dropbox.sh skript teda vyzerá takto

#!/bin/sh

echo "Syncing Apps"
rclone sync --stats-one-line -P Dropbox:Apps /media/mybook/Dropbox/Apps/

echo "Syncing Config"
rclone sync --stats-one-line -P Dropbox:Config /media/mybook/Dropbox/Config/

echo "Syncing Documents"
rclone sync --stats-one-line -P Dropbox:Documents /media/mybook/Dropbox/Documents/

echo "Syncing Projects"
rclone sync --stats-one-line -P Dropbox:Projects /media/mybook/Dropbox/Projects/

echo "Syncing Public"
rclone sync --stats-one-line -P Dropbox:Public /media/mybook/Dropbox/Public/

echo "Syncing Photos"
rclone sync --stats-one-line -P Dropbox:Photos /media/mybook/Dropbox/Photos/

Tento skript spúštam pomocou cronu (crontab -e) raz denne, čo mi na zálohovanie na Raspberry Pi úplne postačuje.