Rclone - Synkroniser filkataloger fra forskjellige skylagringer


Rclone er et kommandolinjeprogram skrevet på Go-språket, brukt til å synkronisere filer og kataloger fra forskjellige skylagringsleverandører som: Amazon Drive, Amazon S3, Backblaze B2, Box, Ceph, DigitalOcean Spaces, Dropbox, FTP, Google Cloud Storage, Google Drive, etc.

Som du ser, støtter den flere plattformer, noe som gjør det til et nyttig verktøy for å synkronisere dataene dine mellom servere eller til en privat lagring.

Rclone kommer med følgende funksjoner

  • MD5/SHA1 hash-sjekker til enhver tid for å sikre filintegritet.
  • Tidsstempler er bevart på filer.
  • Delvis synkronisering støttes på en hel filbasis.
  • Kopimodus for nye eller endrede filer.
  • En måte å synkronisere for å gjøre en katalog identisk.
  • Sjekkmodus – hash-likhetssjekk.
  • Kan synkronisere til og fra nettverk, f.eks. to forskjellige skykontoer.
  • (kryptering) backend.
  • (Cache) backend.
  • (Union) backend.
  • Valgfritt FUSE-feste (rclone-feste).

Hvordan installere rclone i Linux-systemer

Installasjonen av rclone kan fullføres på to forskjellige måter. Den enklere er å bruke installasjonsskriptet ved å gi følgende kommando.

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

Det dette skriptet gjør er å sjekke OS-typen som det kjøres på og laste ned arkivet relatert til det operativsystemet. Deretter trekker den ut arkivet og kopierer rclone binært til /usr/bin/rclone og gir 755 tillatelser til filen.

Til slutt, når installasjonen er fullført, bør du se følgende linje:

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

Den andre måten å installere rclone på er ved å utstede følgende kommandoer.

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

Kopier nå den binære filen og gi den kjørbare tillatelser.

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

Installer rclone manpage.

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

Hvordan konfigurere rclone i Linux-systemer

Det neste du må gjøre er å kjøre rclone config for å lage config-filen. Den vil bli brukt til autentisering for fremtidig bruk av rclone. For å kjøre konfigurasjonsoppsettet kjør følgende kommando.

rclone config

Du vil se følgende ledetekst:

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>

Alternativene er som følger:

  • n) – Opprett ny ekstern tilkobling
  • s) – angi passordbeskyttelse for konfigurasjonen din
  • q) – avslutt konfigurasjonen

For formålet med denne opplæringen kan du trykke "n" og opprette ny tilkobling. Du vil bli bedt om å gi den nye forbindelsen et navn. Etter det vil du bli bedt om å velge typen lagring som skal konfigureres:

Jeg har gitt navn til “Google ” og valgt “Google Disk ”, som er under nummeret 12. Resten av spørsmålene kan du svare på ved å la standardsvaret stå, som er et tomt “ ”.

Når du blir bedt om det, kan du velge “autoconfig ”, som vil generere all nødvendig informasjon for å koble til Google Disk og gi rclone-tillatelser til bruke data fra Google Disk.

Prosessen ser omtrent slik ut:

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

Hvordan bruke rclone i Linux-systemer

Rclone har en ganske lang liste over tilgjengelige alternativer og kommandoer som skal brukes med. Vi vil prøve å dekke noen av de viktigste:

Liste over ekstern katalog

rclone lsd <remote-dir-name>:

Kopier data med rclone

rclone copy source:sourcepath dest:destpath

Merk at hvis rclone finner duplikater, vil disse bli ignorert:

Synkroniser data med rclone

Hvis du vil synkronisere noen data mellom kataloger, bør du bruke rclone med kommandoen sync.

Kommandoen skal se slik ut:

rclone sync source:path dest:path [flags]

I dette tilfellet synkroniseres kilden til destinasjonen, og endrer kun destinasjonen! Denne metoden hopper over uendrede filer. Siden kommandoen kan forårsake tap av data, kan du bruke den med “–dry-run ” for å se nøyaktig hva som skal kopieres og slettes.

Flytt data med rclone

For å flytte data kan du bruke rclone med kommandoen move. Kommandoen skal se slik ut:

rclone move source:path dest:path [flags]

Innholdet fra kilden vil bli flyttet (slettet) og plassert på den valgte destinasjonen.

Andre nyttige rclone-kommandoer

For å opprette en katalog på destinasjonen.

rclone mkdir remote:path

For å fjerne en katalog.

rclone rmdir remote:path

Sjekk om filene på kilden og destinasjonen samsvarer:

rclone check source:path dest:path

Slett filer:

rclone delete remote:path

Hver av rclone-kommandoene kan brukes med forskjellige flagg og inkluderer sin egen hjelpemeny. Du kan for eksempel gjøre en selektiv sletting ved å bruke slettealternativet. La oss si at du vil slette filer større enn 100M, kommandoen vil se slik ut.

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

Det anbefales på det sterkeste å gå gjennom manualen og hjelpen for hver kommando for å få mest mulig ut av rclone. Den fullstendige dokumentasjonen av rclone er tilgjengelig på: https://rclone.org/

Konklusjon

rclone er et kraftig kommandolinjeverktøy som hjelper deg med å administrere data mellom forskjellige skylagringsleverandører. Mens vi i denne artikkelen bare skrapet på overflaten av rclone-funksjoner, er det mye mer å oppnå med det, spesielt når det brukes i kombinasjon med cron-tjeneste (for eksempel).