Cum se configurează sincronizarea fișierelor din Raspberry Pi în OneDrive

Oricât de multă încrederea aș avea în NAS-ul în care am transformat Raspberry Pi-ul, fără o copie de rezervă a fișierelor stocate în acesta nu dorm foarte liniștit. N-am multe date pe el, dar tot ce am acolo e important, de la prima fotografie și până la ultima cheie ssh.

Continut OneDrive

Pentru sincronizarea automată a fișierelor din Raspberry Pi în contul personal pe OneDrive am folosit Rclone, o aplicație pentru linia de comandă (fără interfață grafică), concepută pentru a oferi acces la peste 40 de servicii de stocare cloud.

De ce OneDrive? Pentru că pe acesta mi-am mutat fișierele atunci când Google a schimbat regulile și costurile, fiind cea mai ieftină opțiune avută la îndemână (6 TB + Microsoft Office pentru doar 55€/an, adică aproximativ 4.5€/lună).

Instalare Rclone în Raspberry Pi și conectarea la OneDrive

Cine nu vrea să se complice, poate instala versiunea Rclone disponibilă prin canalele oficiale:

sudo apt update && sudo apt install rclone

La momentul scrierii acestui articol, era vorba despre versiunea 1.53.3:

Rclone - versiune oficială pentru Raspberry

Iar pe site-ul oficial este disponibilă la descărcare versiunea 1.57.0:

Versiunea Rclone pe site-ul oficial

Pentru instalarea acesteia, mai întâi va trebui descărcat pachetul de instalare:

wget https://downloads.rclone.org/v1.57.0/rclone-v1.57.0-linux-arm64.deb

Rulat:

sudo dpkg -i rclone-v1.57.0-linux-arm64.deb

Și așteptat ca instalarea Rclone în Raspberry Pi să fie finalizată.

root@cls:/home/pi# wget https://downloads.rclone.org/v1.57.0/rclone-v1.57.0-linux-arm64.deb
--2022-02-17 20:25:17--  https://downloads.rclone.org/v1.57.0/rclone-v1.57.0-linux-arm64.deb
Resolving downloads.rclone.org (downloads.rclone.org)... 5.153.250.7, 2a02:24e0:8:61f9::1
Connecting to downloads.rclone.org (downloads.rclone.org)|5.153.250.7|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 13596438 (13M) [application/vnd.debian.binary-package]
Saving to: ‘rclone-v1.57.0-linux-arm64.deb’

rclone-v1.57.0-linux-a 100%[============================>]  12.97M  21.5MB/s    in 0.6s

2022-02-17 20:25:18 (21.5 MB/s) - ‘rclone-v1.57.0-linux-arm64.deb’ saved [13596438/13596438]

root@cls:/home/pi# dpkg -i rclone-v1.57.0-linux-arm64.deb
Selecting previously unselected package rclone.
(Reading database ... 47094 files and directories currently installed.)
Preparing to unpack rclone-v1.57.0-linux-arm64.deb ...
Unpacking rclone (1.57.0) ...
Setting up rclone (1.57.0) ...
Processing triggers for man-db (2.9.4-2) ...
root@cls:/home/pi#

Pentru conectarea unui cont nou pe oricare dintre serviciile de stocare admise, va trebui executată comanda „rclone config„. Se va primi următorul răspuns:

root@cls:/home/pi# rclone config
2022/02/17 20:31:53 NOTICE: Config file "/root/.config/rclone/rclone.conf" not found - using defaults
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q>n

În continuare, se va cere să introducem numele dorit pentru serviciul de stocare cloud în care vom sincroniza datele, precum și informațiile de autentificare în acesta.

introducere nume pentru serviciu cloud

Pentru OneDrive trebuie răspuns cu 27, apoi lăsate neatinse valorile implicite. Deoarece se realizează o conectare headless (prin comenzi, fără a dispune de o interfață grafică), va trebui descărcat Rclone pe un PC și solicitat de pe acesta token-ul de conectare.

Storage> 27
Option client_id.
OAuth Client Id.
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_id>
Option client_secret.
OAuth Client Secret.
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_secret>
Option region.
Choose national cloud region for OneDrive.
Enter a string value. Press Enter for the default ("global").
Choose a number from below, or type in your own value.
1 / Microsoft Cloud Global
\ "global"
2 / Microsoft Cloud for US Government
\ "us"
3 / Microsoft Cloud Germany
\ "de"
4 / Azure and Office 365 operated by 21Vianet in China
\ "cn"
region> 1
Edit advanced config?
y) Yes
n) No (default)
y/n> n
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine

y) Yes (default)
n) No
y/n> n
Option config_token.
For this to work, you will need rclone available on a machine that has
a web browser available.
For more help and alternate methods see: https://rclone.org/remote_setup/
Execute the following on the machine with the web browser (same rclone
version recommended):
rclone authorize "onedrive"
Then paste the result.

Nu e mare scofală. Trebuie să descărcați arhiva .zip ce conține Rclone, să deschideți în aceasta o linie de comandă și să executați comanda .\rclone.exe authorize „onedrive”:

Obținere Token pentru conectarea Rclone la OneDrive

Executarea acestei comenzi va face să se deschidă în Internet Browser-ul implicit pagina de logare a OneDrive. După introducerea datelor de logare, veți fi redirecționați la o pagină identică celei din captura de ecran de mai jos.

Success! Rclone are acces la OneDrive

Iar în linia de comandă va fi afișat token-ul de conectare.

Token pentru conectarea la contul OneDrive cu Rclone

Va trebui copiat și lipit respectivul token în sesiunea SSH la Raspberry Pi.

token onedrive lipit în ssh

Ulterior, va trebui indicat tipul contului OneDrive în care se dorește sincronizarea fișierelor de pe Raspberry Pi ajutați de Rclone.

tipul contului OneDrive

Răspunsul, așadar, variază în funcție de tipul contului ales pentru conectare.

confirmare că e vorba despre un cont personal

Asistentul de configurare a Rclone va confirma conectarea la contul OneDrive.

confirmarea conectării la contul onedrive

Iar la final va întreba dacă se dorește conectarea la un alt cont ori părăsirea procedurii de conectare. La mine nu s-a pus problema, că n-am alte abonamente, nici măcar gratuite, așadar am răspuns cu litera „q” pentru a închide asistentul.

Părăsire configurarea Rclone cu OneDrive

Conectând Rclone la OneDrive, acesta va „transforma” un folder local în OneDrive. Nu va descărca datele, ci doar va afișa conținutul acestora local. Pentru montarea respectivului folder va trebui executată comanda:

rclone --vfs-cache-mode writes mount [NumeServiciu]: [locatie/folderul/local/unde/va/fi/afisat/continutul/OneDrive/]

Așadar, în cazul meu, comanda este:

rclone --vfs-cache-mode writes mount OneDrive: /srv/dev-disk-by-uuid-c6b326d1-1573-461e-a081-c4eld8e1a61c/data/OneDrive

Cu „ls” la respectiva locație ar trebui să văd ceea ce în realitate se află stocat pe OneDrive.

listare conținut folder onedrive cu "ls"

Pentru a testa că totul a fost configurat corect, încercați sincronizarea datelor dintr-un folder aflat în Raspberry Pi în altul găzduit pe OneDrive.

rclone sync -v [locatie/folder/local/] [NumeServiciu]:[Folder_Cloud]

Astfel, pentru a sincroniza toate fișierele din folderul data aflat pe SSD în folderul RaspberryStorage găzduit pe OneDrive, comanda este:

rclone sync -v /srv/dev-disk-by-uuid-c1b256g2-1476-413e-a031-c4saf0e1ak1c/data/ OneDrive:RaspberryStorage

Obs.: Pentru obținerea rutei complete (absolute path), aruncați o privire peste acest tutorial.

Deoarece am folosit flag-ul -v, vom putea vedea în timp real operațiile realizate de Rclone.

sincronizare date de pe Raspberry Pi în OneDrive
Singurul inconvenient al sincronizării e că dacă veți șterge din greșeală vreun fișier, acesta va fi eliminat și din OneDrive data viitoare când veți lansa comanda de sincronizare. Dacă nu doriți acest lucru, înlocuiți „sync” cu „copy” în cadrul comenzii.

Lăsat așa cum se află actualmente, la închiderea sesiunii SSH conexiunea cu OneDrive se va pierde. În plus, doar utilizatorul „root” dispune de privilegiile necesare pentru a vedea conținutul OneDrive. Nici nu se va sincroniza automat, că încă n-am configurat nimic în acest scop, dar le vom trata pe fiecare în parte în articolul următor pe această temă.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.