Rclone - Sinhronizacija imenikov datotek iz različnih shramb v oblaku


Rclone je program ukazne vrstice, napisan v različnih ponudnikih za shranjevanje v oblaku, kot so: Amazon Drive, Amazon S3, Backblaze B2, Box, Ceph, DigitalOcean Spaces, Dropbox, FTP, Google Cloud Storage, Google Drive itd.

Kot vidite, podpira več platform, zaradi česar je uporabno orodje za sinhronizacijo vaših podatkov med strežniki ali v zasebno shrambo.

Rclone ima naslednje funkcije

  • MD5/SHA1 vedno preverja razpršitev, da se zagotovi celovitost datoteke.
  • Časovne oznake so shranjene v datotekah.
  • Delne sinhronizacije so podprte za celotno datoteko.
  • Način kopiranja za nove ali spremenjene datoteke.
  • Enosmerna sinhronizacija za identifikacijo imenika.
  • Način preverjanja - preverjanje enakosti razpršitve.
  • Lahko se sinhronizira v omrežje in iz njega, npr. dva različna računa v oblaku.
  • (šifriranje) ozadje.
  • Zadnji del (predpomnilnik).
  • Zaledje (Union).
  • Izbirni nosilec FUSE (nosilec rclone).

Kako namestiti rclone v sisteme Linux

Namestitev rclone lahko zaključite na dva različna načina. Najlažje je uporabiti njihov namestitveni skript z izdajo naslednjega ukaza.

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

Ta skript preveri vrsto operacijskega sistema, na katerem se izvaja, in prenese arhiv, povezan s tem operacijskim sistemom. Nato ekstrahira arhiv in kopira bc bc rclone v/usr/bin/rclone in daje 755 dovoljenj za datoteko.

Ko je namestitev končana, bi morali videti naslednjo vrstico:

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

Drugi način namestitve rclone je z izdajo naslednjih ukazov.

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

Zdaj kopirajte binarno datoteko in ji dajte izvedljiva dovoljenja.

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

Namestite rclone manpage.

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

Kako konfigurirati rclone v sistemih Linux

Nato morate zagnati konfiguracijo rclone, da ustvarite konfiguracijsko datoteko. Uporabil se bo za preverjanje pristnosti za prihodnjo uporabo rclone. Če želite zagnati konfiguracijo, zaženite naslednji ukaz.

# rclone config

Videli boste naslednji poziv:

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>

Možnosti so naslednje:

  • n) - Ustvarite novo oddaljeno povezavo
  • s) - nastavite zaščito z geslom za vašo konfiguracijo
  • q) - zapustite konfiguracijo

V tem priročniku lahko pritisnete \"n \" in ustvarite novo povezavo. Novi povezavi boste morali dati ime. Po tem boste morali izbrati vrsto pomnilnika, ki ga želite konfigurirati:

Po povezavi sem poimenoval\"Google" in izbral\"Google Drive", ki je pod številko 12. Na ostala vprašanja lahko odgovorite tako, da preprosto pustite privzeti odgovor, ki je prazen\"".

Ko vas to pozove, lahko izberete\"samodejno konfiguriranje", ki bo ustvarilo vse potrebne podatke za povezavo z vašim Google Driveom in dalo dovoljenje rclone za uporabo podatkov iz Google Drive.

Postopek izgleda nekako takole:

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

Kako uporabljati rclone v sistemih Linux

Rclone ima precej dolg seznam razpoložljivih možnosti in ukazov za uporabo. Poskušali bomo zajeti nekaj pomembnejših:

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

Upoštevajte, da če rclone najde dvojnike, bodo ti prezrti:

Če želite sinhronizirati nekatere podatke med imenikoma, uporabite rclone z ukazom sync.

Ukaz bi moral izgledati tako:

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

V tem primeru se vir sinhronizira s ciljem in spremeni samo cilj! Ta metoda preskoči nespremenjene datoteke. Ker lahko ukaz povzroči izgubo podatkov, ga lahko uporabite z\"-dry-run", da vidite, kaj natančno bo kopirano in izbrisano.

Za premikanje podatkov lahko uporabite rclone z ukazom move. Ukaz bi moral izgledati tako:

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

Vsebina iz vira bo premaknjena (izbrisana) in postavljena na izbrani cilj.

Če želite ustvariti imenik na cilju.

# rclone mkdir remote:path

Če želite odstraniti imenik.

# rclone rmdir remote:path

Preverite, ali se datoteke o izvoru in cilju ujemajo:

# rclone check source:path dest:path

Izbriši datoteke:

# rclone delete remote:path

Vsak od ukazov rclone se lahko uporablja z različnimi zastavicami in vključuje svoj meni za pomoč. Na primer, lahko z možnostjo brisanja izvedete selektivno brisanje. Recimo, da želite izbrisati datoteke, večje od 100 M, ukaz bi izgledal tako.

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

Zelo priporočljivo je, da pregledate priročnik in pomoč za vsak ukaz, da kar najbolje izkoristite rclone. Celotna dokumentacija programa rclone je na voljo na: https://rclone.org/

rclone je zmogljiv pripomoček ukazne vrstice, ki vam pomaga pri upravljanju podatkov med različnimi ponudniki shranjevanja v oblaku. Medtem ko smo v tem članku opraskali le površino zmogljivosti rclone, je z njo mogoče doseči še veliko več, zlasti če jo uporabljamo v kombinaciji s storitvijo cron (na primer).