Rclone - Synkroniser filmapper fra forskellige Cloud Storage


Rclone er et kommandolinjeprogram skrevet i forskellige cloud storage-udbydere som: Amazon Drive, Amazon S3, Backblaze B2, Box, Ceph, DigitalOcean Spaces, Dropbox, FTP, Google Cloud Storage, Google Drive osv.

Som du ser understøtter det flere platforme, hvilket gør det til et nyttigt værktøj til at synkronisere dine data mellem servere eller til et privat lager.

Rclone leveres med følgende funktioner

  • MD5/SHA1 hash-kontrol til enhver tid for at sikre filintegritetsintegritet.
  • Tidsstempler bevares i filer.
  • Delvis synkronisering understøttes på hele filbasis.
  • Kopitilstand for nye eller ændrede filer.
  • Envejssynkronisering for at gøre et bibliotek identisk.
  • Kontroltilstand - hash-ligestillingskontrol.
  • Kan synkroniseres til og fra netværk, f.eks. to forskellige cloud-konti.
  • (kryptering) backend.
  • (cache) backend.
  • (Union) backend.
  • Valgfri FUSE-montering (rclone-montering).

Sådan installeres rclone i Linux-systemer

Installationen af rclone kan gennemføres på to forskellige måder. Jo lettere man bruger deres installationsskript ved at udstede følgende kommando.

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

Hvad dette script gør er at kontrollere OS-typen, som det køres på, og downloade arkivet, der er relateret til det OS. Derefter udtrækker det arkivet og kopierer rclone binært til/usr/bin/rclone og giver 755 tilladelser til filen.

I sidste ende, når installationen er færdig, skal 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 anden måde at installere rclone på er at udstede 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 nu den binære fil, og giv den eksekverbare tilladelser.

# 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 

Sådan konfigureres rclone i Linux-systemer

Derefter skal du køre rclone config for at oprette din config-fil. Det vil blive brugt til godkendelse til fremtidig brug af rclone. For at køre konfigurationsopsætningen skal du køre følgende kommando.

# rclone config

Du får vist følgende meddelelse:

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>

Indstillingerne er som følger:

  • n) - Opret ny fjernforbindelse
  • s) - indstil adgangskodebeskyttelse til din konfiguration
  • q) - afslut konfigurationen

Med henblik på denne tutorial kan du trykke på "n" og oprette ny forbindelse. Du bliver bedt om at give den nye forbindelse et navn. Derefter bliver du bedt om at vælge den type lager, der skal konfigureres:

Jeg har navngivet "Google" og valgt "Google Drev", som er under nummer 12. Resten af spørgsmålene kan du besvare ved blot at lade standardsvaret, som er et tomt "".

Når du bliver bedt om det, kan du vælge “autoconfig”, som genererer alle de nødvendige oplysninger for at oprette forbindelse til dit Google Drev og give rclone tilladelser til at bruge data fra Google Drive.

Processen ser sådan ud:

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

Sådan bruges rclone i Linux-systemer

Rclone har en ganske lang liste over tilgængelige indstillinger og kommandoer, der skal bruges med. Vi vil forsøge at dække nogle af de mere vigtige:

# rclone lsd <remote-dir-name>:
# rclone copy source:sourcepath dest:destpath

Bemærk, at hvis rclone finder duplikater, ignoreres disse:

Hvis du vil synkronisere nogle data mellem mapper, skal du bruge rclone med kommandoen sync.

Kommandoen skal se sådan ud:

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

I dette tilfælde synkroniseres kilden til destinationen, og ændrer kun destinationen! Denne metode springer uændrede filer over. Da kommandoen kan medføre datatab, kan du bruge den med “–dry-run” for at se, hvad der nøjagtigt kopieres og slettes.

For at flytte data kan du bruge rclone med move-kommandoen. Kommandoen skal se sådan ud:

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

Indholdet fra kilden flyttes (slettes) og placeres på den valgte destination.

For at oprette en mappe på destinationen.

# rclone mkdir remote:path

For at fjerne et bibliotek.

# rclone rmdir remote:path

Kontroller, om filer på kilde og destination matcher:

# rclone check source:path dest:path

Slet filer:

# rclone delete remote:path

Hver af rclone-kommandoer kan bruges med forskellige flag og inkluderer sin egen hjælpemenu. For eksempel kan du udføre en selektiv sletning ved hjælp af sletningsindstillingen. Lad os sige, at du vil slette filer større end 100M, kommandoen ser sådan ud.

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

Det anbefales stærkt at gennemgå manualen og hjælp til hver kommando for at få mest muligt ud af rclone. Den fulde dokumentation for rclone er tilgængelig på: https://rclone.org/

rclone er et kraftfuldt kommandolinjeværktøj, der hjælper dig med at administrere data mellem forskellige Cloud-lagerudbydere. Mens vi i denne artikel kun ridsede overfladen af rclone-kapaciteter, er der meget mere at opnå med det, især når det bruges i kombination med cron-service (for eksempel).