Rclone - Sinhronizacija direktorija datoteka iz različitih Cloud Storage


Rclone je program komandne linije napisan na Go jeziku, koji se koristi za sinhronizaciju datoteka i direktorija različitih dobavljača pohrane u oblaku kao što su: Amazon Drive, Amazon S3, Backblaze B2, Box, Ceph, DigitalOcean Spaces, Dropbox, FTP, Google Cloud Storage, Google Drive, itd.

Kao što vidite, podržava više platformi, što ga čini korisnim alatom za sinhronizaciju vaših podataka između servera ili sa privatnom pohranom.

Rclone dolazi sa sljedećim karakteristikama

  • MD5/SHA1 hash provjerava u svakom trenutku kako bi se osigurao integritet datoteke.
  • Vremenske oznake se čuvaju na datotekama.
  • Djelomične sinhronizacije podržane na bazi cijele datoteke.
  • Način kopiranja za nove ili promijenjene datoteke.
  • Jednosmjerna sinhronizacija kako bi direktorij bio identičan.
  • Način provjere – provjera jednakosti heša.
  • Može da se sinhronizuje sa i sa mreže, npr. dva različita računa u oblaku.
  • (Enkripcija) pozadina.
  • (Cache) backend.
  • (Union) backend.
  • Opcioni FUSE nosač (rclone mount).

Kako instalirati rclone u Linux sisteme

Instalacija rclone može se završiti na dva različita načina. Lakši je korištenje njihove instalacione skripte, izdavanjem sljedeće naredbe.

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

Ono što ova skripta radi je da provjeri tip OS-a na kojem je pokrenuta i preuzme arhivu koja se odnosi na taj OS. Zatim izvlači arhivu i kopira rclone binarno u /usr/bin/rclone i daje 755 dozvole za fajl.

Na kraju, kada je instalacija završena, trebali biste vidjeti sljedeći red:

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

Drugi način za instaliranje rclone je izdavanje sljedećih naredbi.

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

Sada kopirajte binarnu datoteku i dajte joj izvršne dozvole.

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

Instalirajte rclone stranicu za upravljanje.

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

Kako konfigurirati rclone u Linux sistemima

Sljedeće što trebate učiniti je pokrenuti rclone config da kreirate svoju konfiguracijsku datoteku. Koristit će se za autentifikaciju za buduću upotrebu rclone. Za pokretanje konfiguracije pokrenite sljedeću naredbu.

rclone config

Vidjet ćete sljedeći upit:

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>

Opcije su sljedeće:

  • n) – Kreirajte novu udaljenu vezu
  • s) – postavite zaštitu lozinkom za vašu konfiguraciju
  • q) – izađite iz konfiguracije

Za potrebe ovog vodiča, pritisnite "n" i kreirajte novu vezu. Od vas će se tražiti da novoj vezi date ime. Nakon toga od vas će biti zatraženo da odaberete vrstu pohrane koju želite konfigurirati:

Imenovao sam putem veze “Google ” i odabrao “Google Drive ”, koji je pod brojem 12. Na ostala pitanja možete odgovoriti jednostavnim ostavljanjem zadanog odgovora, koji je prazan “ ”.

Kada se od vas zatraži, možete odabrati “autoconfig ”, koji će generirati sve potrebne informacije za povezivanje na vaš Google disk i dati rclone odobrenja za koristite podatke sa Google diska.

Proces izgleda otprilike ovako:

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 koristiti rclone u Linux sistemima

Rclone ima prilično dugu listu dostupnih opcija i komandi sa kojima se može koristiti. Pokušat ćemo pokriti neke od važnijih:

Lista udaljenog imenika

rclone lsd <remote-dir-name>:

Kopirajte podatke pomoću rclone

rclone copy source:sourcepath dest:destpath

Imajte na umu da ako rclone pronađe duplikate, oni će biti zanemareni:

Sinhronizirajte podatke sa rclone

Ako želite sinkronizirati neke podatke između direktorija, trebali biste koristiti rclone sa sync komandom.

Naredba bi trebala izgledati ovako:

rclone sync source:path dest:path [flags]

U ovom slučaju izvor se sinkronizira sa odredištem, mijenjajući samo odredište! Ova metoda preskače nepromijenjene datoteke. Pošto komanda može uzrokovati gubitak podataka, možete je koristiti sa “–dry-run ” da vidite šta će tačno biti kopirano i izbrisano.

Premjestite podatke pomoću rclone

Za premještanje podataka možete koristiti rclone sa naredbom move. Naredba bi trebala izgledati ovako:

rclone move source:path dest:path [flags]

Sadržaj iz izvora će biti premješten (obrisan) i postavljen na odabrano odredište.

Ostale korisne rclone komande

Za kreiranje direktorija na odredištu.

rclone mkdir remote:path

Za uklanjanje direktorija.

rclone rmdir remote:path

Provjerite da li se fajlovi na izvoru i odredištu podudaraju:

rclone check source:path dest:path

Izbrišite fajlove:

rclone delete remote:path

Svaka od naredbi rclone može se koristiti s različitim oznakama i uključuje vlastiti meni pomoći. Na primjer, možete izvršiti selektivno brisanje koristeći opciju brisanja. Recimo da želite da izbrišete datoteke veće od 100M, komanda bi izgledala ovako.

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

Toplo je preporučljivo da pregledate priručnik i pomoć za svaku naredbu kako biste maksimalno iskoristili rclone. Kompletna dokumentacija rclone-a dostupna je na: https://rclone.org/

Zaključak

rclone je moćan uslužni program komandne linije koji vam pomaže u upravljanju podacima između različitih dobavljača Cloud pohrane. Iako smo u ovom članku zagrebali samo površinu rclone mogućnosti, može se postići još mnogo toga, posebno kada se koristi u kombinaciji sa cron servisom (na primjer).