Rclone este un instrument open source care permite sincronizarea sistemelor Linux cu cele mai importante servicii de stocare în cloud: Google Drive, Amazon Drive, S3, Dropbox, Backblaze B2, One Drive, Box, Hubic, Cloudfiles, Google Cloud Storage, Yandex și multe altele.
Apariția lui a fost determinată de nevoia de sincronizare a unui director local cu spațiul deținut în cloud de utilizatori, spațiu care, de cele mai multe ori, pune probleme de montare. Cea mai cunoscută comandă pentru a sincroniza local două directoare este rsync. Dificultatea apare, după cum am spus, când este necesară montarea spațiului din cloud pe sistem. Rclone a rezolvat această problemă.
Instalarea rclone
Instalarea rclone pe sistemele Linux este extrem de simplă. Se rulează comanda de mai jos:
curl https://rclone.org/install.sh | sudo bash
Pentru a instala versiunea beta:
curl https://rclone.org/install.sh | sudo bash -s beta
Configurarea rclone
Pentru a începe orice configurare cu rclone, se dă comanda:
rclone config
Voi prezenta mai jos doar comenzile pentru Google Drive. Am marcat răspunsurile obligatorii care trebuie date și, de asemenea, am comentat cu italic unde am considerat că trebuie mai multe detalii.
$ rclone config
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
name> GoogleDrive # sau orice nume ales de voi
Type of storage to configure.
Choose a number from below, or type in your own value # Google Drive este pe poziția 11, așa că vom tasta această cifră
11 / Google Drive
\ "drive"
Storage> 11
Google Application Client Id - leave blank normally.
client_id>
Google Application Client Secret - leave blank normally.
client_secret>
Scope that rclone should use when requesting access from drive.
Choose a number from below, or type in your own value
1 / Full access all files, excluding Application Data Folder.
\ "drive"
2 / Read-only access to file metadata and file contents.
\ "drive.readonly"
/ Access to files created by rclone only.
3 | These are visible in the drive website.
| File authorization is revoked when the user deauthorizes the app.
\ "drive.file"
/ Allows read and write access to the Application Data folder.
4 | This is not visible in the drive website.
\ "drive.appfolder"
/ Allows read-only access to file metadata but
5 | does not allow any access to read or download file content.
\ "drive.metadata.readonly"
scope> 1
ID of the root folder - leave blank normally. Fill in to access "Computers" folders. (see docs).
root_folder_id>
Service Account Credentials JSON file path - leave blank normally.
Needed only if you want use SA instead of interactive login.
service_account_file>
Remote config
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine or Y didn't work
y) Yes
n) No
y/n> n # dacă browserul nu se deschide să vă ceară să acceptați aplicația, copiați codul de mai jos și lipiți-l în browser; obligatoriu când configuați rclone pe un server fără GUI
If your browser doesn't open automatically go to the following link: https://accounts.google.com/o/oauth2/auth? access_type=offline&client_id=30300000044.apps.googleusercontent.com&redirect_uri =urn%2ert%3Adf%3Aoauth%3A2.0%2lld&response_type=code&scope= https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&state= d75e8c9bb22dd55dd79163dc8355b
Log in and authorize rclone for access
Enter verification code> 5/BBCru3TFnT4tlD0k....pKhnHkETg
Configure this as a team drive?
y) Yes
n) No
y/n> n
--------------------
[GoogleDrive] type = drive
client_id =
client_secret =
scope = drive
root_folder_id =
service_account_file =
token = {"access_token":"zba69.GlvJ_y5NU_ImGJbg5KyJHonoiCAc4NYc 4UFlXNireNgBmj1iemD8BR- wCyU","token_type":"Bearer","refresh_token":"1/9RscgcoVM2o_y2qw54","expiry": "2018-05-20T19:10:18.32005452+03:00"}
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y
Current remotes:Name Type
==== ====
GoogleDrive drivee) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password # obligatoriu dacă faceți configurarea pe un server în cloud
q) Quit config
e/n/d/r/c/s/q> q
De reținut că, dacă rclone este configurat pe un server fără interfață grafică, trebuie copiat codul furnizat la pasul respectiv și lipit în orice browser la care aveți acces de pe calculatorul local, apoi dați acceptul ca rclone să vă acceseze spațiul din Google Drive.
Pentru a afișa toate serviciile cloud remote configurate:
rclone listremotes
GoogleDrive:
Pentru a afișa directoarele din contul Google Drive:
rclone lsd GoogleDrive:
Pentru a afișa toate fișierele:
rclone ls GoogleDrive:
Pentru a copia un director local în Google Drive:
rclone copy /cale/director/local GoogleDrive:backup/nume_director
Pentru a sincroniza un director folosiți'
rclone sync /cale/director/local GoogleDrive:backup/nume_director
Copierea și sincronizarea se pot face și în sens invers, din contul remote pe sistemul local.
Puteți face un mic script care să ruleze copierea sau sincronizarea directorului cu backup-uri la ora dorită de voi.
Dacă la pasul de la final, înainte de ieșire, alegeți opțiunea s pentru a parola fișierul de configurare rclone (indicat dacă setați rclone pe un server în cloud sau pe un sistem la care nu aveți doar voi acces), va mai trebui asignată o variabilă de mediu RCLONE_CONFIG_PASS care să conțină parola respectivă (această variabilă de mediu va fi disponibilă doar pentru sesiunea în care rulează scriptul). Un exemplu este mai jos:
#!/bin/bash
#
RCLONE_CONFIG_PASS=parola_voastra_rclone
export RCLONE_CONFIG_PASS
# în loc de /home/backup puneți directorul vostru sursă
# în loc de GoogleDrive:backup puneți numele directorului vostru destinație
# pentru a exclude toate fișierele ascunse (care încep cu "." ) vom folosi directiva --exclude
rclone sync /home/backup GoogleDrive:backup/server --exclude '.*' --ask-password=false
Mult mai multe pot fi aflate din documentația Rclone - completă și pe înțelesul tuturor. De asemenea, mai multe despre filtrarea care poate fi făcută cu rclone aici.
Malin a zis
Am vazut ca e foarte popular rclone, eu nu l-am utilizat niciodata. Prefer good old rsync.
Bobses a zis
E popular pentru ca poti, foarte repede, sa montezi si sa setezi un cron sync cu aproape orice serviciu de stocare in cloud.