Rclone - Sincronizați directoarele fișierelor din diferite stocări în cloud


Rclone este un program de linie de comandă scris în diferiți furnizori de stocare în cloud, cum ar fi: Amazon Drive, Amazon S3, Backblaze B2, Box, Ceph, DigitalOcean Spaces, Dropbox, FTP, Google Cloud Storage, Google Drive etc. .

După cum vedeți, acceptă mai multe platforme, ceea ce îl face un instrument util pentru a vă sincroniza datele între servere sau cu o stocare privată.

Rclone vine cu următoarele caracteristici

  • Verificări hash MD5/SHA1 în orice moment pentru a asigura integritatea fișierelor.
  • Stampările temporale sunt păstrate pe fișiere.
  • Sincronizări parțiale acceptate pe baza întregului fișier.
  • Modul de copiere pentru fișierele noi sau modificate.
  • Sincronizare într-un singur mod pentru a face un director identic.
  • Modul de verificare – verificarea egalității hash.
  • Se poate sincroniza cu și de la rețea, de exemplu două conturi cloud diferite.
  • Backend (criptare).
  • Backend (cache).
  • Backend (Uniune).
  • Suport opțional FUSE (montură rclone).

Cum se instalează rclone în sistemele Linux

Instalarea rclone poate fi finalizată în două moduri diferite. Cel mai ușor este să folosească scriptul lor de instalare, lansând următoarea comandă.

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

Ceea ce face acest script este să verifice tipul de sistem de operare pe care este rulat și să descarce arhiva aferentă sistemului de operare respectiv. Apoi extrage arhiva și copiază rclone binarul în /usr/bin/rclone și oferă 755 permisiuni pentru fișier.

La final, când instalarea este completă, ar trebui să vedeți următoarea linie:

Rclone v1.44 has successfully installed.
Now run “rclone config” for setup, Check https://rclone.org/docs/ for  more details.

A doua modalitate de a instala rclone este lansarea următoarelor comenzi.

# curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
# unzip rclone-current-linux-amd64.zip
# cd rclone-*-linux-amd64

Acum copiați fișierul binar și acordați-i permisiuni executabile.

# cp rclone /usr/bin/
# chown root:root /usr/bin/rclone
# chmod 755 /usr/bin/rclone

Instalați pagina de manual rclone.

# mkdir -p /usr/local/share/man/man1
# cp rclone.1 /usr/local/share/man/man1/
# mandb 

Cum se configurează rclone în sistemele Linux

În continuare, ceea ce va trebui să faceți este să rulați rclone config pentru a vă crea fișierul de configurare. Va fi folosit pentru autentificare pentru utilizarea ulterioară a rclone. Pentru a rula configurația, executați următoarea comandă.

# rclone config

Veți vedea următorul prompt:

2018/11/13 11:39:58 NOTICE: Config file “/home/user/.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>

Opțiunile sunt următoarele:

  • n) – Creați o nouă conexiune la distanță
  • s) – setați protecția prin parolă pentru configurația dvs.
  • q) – ieșiți din configurație

În scopul acestui tutorial, să apăsăm \n\ și să creăm o nouă conexiune. Vi se va cere să dați un nume noii conexiuni. După aceea, vi se va solicita să selectați tipul de stocare care trebuie configurat:

Am numit după conexiune \„Google” și am selectat \„Google Drive”, care se află sub numărul 12. La restul întrebărilor le puteți răspunde lăsând pur și simplu răspunsul implicit, care este un \” gol.

Când vi se cere, puteți selecta \„autoconfig”, care va genera toate informațiile necesare pentru a vă conecta la Google Drive și va acorda permisiuni de rclonare pentru a utiliza date din Google Drive.

Procesul arată cam așa:

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 - 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> y
If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...
Got code
Configure this as a team drive?
y) Yes
n) No
y/n> n
--------------------
[remote]
client_id = 
client_secret = 
scope = drive
root_folder_id = 
service_account_file =
token = {"access_token":"XXX","token_type":"Bearer","refresh_token":"XXX","expiry":"2018-11-13T11:57:58.955387075Z"}
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y

Cum să utilizați rclone în sistemele Linux

Rclone are o listă destul de lungă de opțiuni și comenzi disponibile pentru a fi utilizate. Vom încerca să acoperim câteva dintre cele mai importante:

Listează directorul de la distanță

# rclone lsd <remote-dir-name>:

Copiați datele cu rclone

# rclone copy source:sourcepath dest:destpath

Rețineți că, dacă rclone găsește duplicate, acestea vor fi ignorate:

Sincronizați datele cu rclone

Dacă doriți să sincronizați unele date între directoare, ar trebui să utilizați rclone cu comanda sync.

Comanda ar trebui să arate astfel:

# rclone sync source:path dest:path [flags]

În acest caz, sursa este sincronizată cu destinația, schimbând doar destinația! Această metodă omite fișierele neschimbate. Deoarece comanda poate provoca pierderi de date, o puteți folosi cu \–dry-run” pentru a vedea exact ce va fi copiat și șters.

Mutați datele cu rclone

Pentru a muta datele, puteți utiliza rclone cu comanda mutare. Comanda ar trebui să arate astfel:

# rclone move source:path dest:path [flags]

Conținutul din sursă, va fi mutat (șters) și plasat pe destinația selectată.

Alte comenzi utile rclone

Pentru a crea un director pe destinație.

# rclone mkdir remote:path

Pentru a elimina un director.

# rclone rmdir remote:path

Verificați dacă fișierele de pe sursă și destinație se potrivesc:

# rclone check source:path dest:path

Sterge fisierele:

# rclone delete remote:path

Fiecare dintre comenzile rclone poate fi folosită cu diferite steaguri și include propriul său meniu de ajutor. De exemplu, puteți efectua o ștergere selectivă folosind opțiunea de ștergere. Să presupunem că doriți să ștergeți fișiere mai mari de 100 M, comanda ar arăta astfel.

# rclone --min-size 100M delete remote:path

Este foarte recomandat să revizuiți manualul și să ajute pentru fiecare comandă pentru a profita la maximum de rclone. Documentația completă a rclone este disponibilă la: https://rclone.org/

Concluzie

rclone este un utilitar puternic de linie de comandă care vă ajută să gestionați datele între diferiți furnizori de stocare în cloud. În timp ce în acest articol am zgâriat doar suprafața capacităților de rclone, este mult mai mult de realizat cu el, mai ales atunci când este utilizat în combinație cu serviciul cron (de exemplu).