Igor Kulman

Synchronizácia cloudových úložísk s Raspberry Pi

· Igor Kulman

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šťastie 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 synchronizá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.

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

Teoreticky tak môžete nahradiť s trochou skriptovania oficiá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 distribúcie, ktorú používate. Najjednoduchší spôsob je

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

Konfigurácia

Po inštalácii 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 konkrétneho adresára. Teda napríklad

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

jednorázovo a jednosmerne synchronizuje adresár Apps v mojom Dropboxe s adresárom Apps na externom disku pripojenom k môjmu Raspberry Pi. Použité parametre slúžia na zobrazenie jednoriadkových štatistík o 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úšťam pomocou cronu (crontab -e) raz denne, čo mi na zálohovanie na Raspberry Pi úplne postačuje.