Wyszukiwanie w witrynie

Rclone — synchronizuj katalogi plików z różnych magazynów w chmurze


Rclone to program wiersza poleceń napisany w języku Go, służący do synchronizacji plików i katalogów od różnych dostawców usług przechowywania w chmurze, takich jak: Amazon Drive, Amazon S3, Backblaze B2, Box, Ceph, DigitalOcean Spaces, Dropbox, FTP, Google Cloud Storage, Dysk Google itp.

Jak widzisz, obsługuje wiele platform, co czyni go przydatnym narzędziem do synchronizacji danych między serwerami lub do prywatnej pamięci.

Rclone ma następujące funkcje

  • Hash MD5/SHA1 sprawdza przez cały czas, aby zapewnić integralność plików.
  • Sygnatury czasowe są zachowywane w plikach.
  • Częściowe synchronizacje obsługiwane na podstawie całego pliku.
  • Tryb kopiowania dla nowych lub zmienionych plików.
  • Synchronizacja jednokierunkowa, aby katalog był identyczny.
  • Tryb sprawdzania – sprawdzanie równości skrótu.
  • Można synchronizować do i z sieci, np. dwa różne konta w chmurze.
  • (Szyfrowanie) backend.
  • Zaplecze (pamięć podręczna).
  • (Unia) zaplecze.
  • Opcjonalny uchwyt FUSE (mocowanie rclone).

Jak zainstalować rclone w systemach Linux

Instalację rclone można przeprowadzić na dwa różne sposoby. Łatwiej jest użyć ich skryptu instalacyjnego, wydając następujące polecenie.

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

Zadaniem tego skryptu jest sprawdzenie typu systemu operacyjnego, na którym jest uruchomiony, i pobranie archiwum powiązanego z tym systemem operacyjnym. Następnie rozpakowuje archiwum i kopiuje plik binarny rclone do /usr/bin/rclone i przyznaje 755 uprawnienia do pliku.

Na koniec, po zakończeniu instalacji, powinieneś zobaczyć następujący wiersz:

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

Drugi sposób instalacji rclone polega na wydaniu następujących poleceń.

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

Teraz skopiuj plik binarny i nadaj mu uprawnienia do wykonywania.

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

Zainstaluj stronę podręcznika rclone.

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

Jak skonfigurować rclone w systemach Linux

Następnie musisz uruchomić rclone config, aby utworzyć plik konfiguracyjny. Będzie używany do uwierzytelniania w przyszłości przy użyciu rclone. Aby uruchomić instalację konfiguracji, uruchom następujące polecenie.

rclone config

Zobaczysz następujący monit:

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>

Opcje są następujące:

  • n) – Utwórz nowe połączenie zdalne
  • s) – ustaw ochronę hasłem dla swojej konfiguracji
  • q) – wyjdź z konfiguracji

Na potrzeby tego samouczka naciśnij "n" i utwórz nowe połączenie. Zostaniesz poproszony o nadanie nazwy nowemu połączeniu. Następnie zostaniesz poproszony o wybranie typu pamięci do skonfigurowania:

Nazwałem przez połączenie „Google ” i wybrałem „Dysk Google ”, który znajduje się pod numerem 12. Na resztę pytań możesz odpowiedzieć, po prostu pozostawiając domyślną odpowiedź, czyli puste „ ”.

Gdy zostaniesz o to poproszony, możesz wybrać opcję „autoconfig ”, która wygeneruje wszystkie informacje wymagane do połączenia z Twoim Dyskiem Google i nada uprawnienia rclone do korzystaj z danych z Dysku Google.

Proces wygląda mniej więcej tak:

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

Jak korzystać z rclone w systemach Linux

Rclone ma dość długą listę dostępnych opcji i poleceń, z których można korzystać. Postaramy się omówić niektóre z ważniejszych:

Wyświetl katalog zdalny

rclone lsd <remote-dir-name>:

Skopiuj dane za pomocą rclone

rclone copy source:sourcepath dest:destpath

Pamiętaj, że jeśli rclone znajdzie duplikaty, zostaną one zignorowane:

Synchronizuj dane z rclone

Jeśli chcesz zsynchronizować niektóre dane pomiędzy katalogami, powinieneś użyć rclone z poleceniem sync.

Polecenie powinno wyglądać następująco:

rclone sync source:path dest:path [flags]

W tym przypadku źródło jest synchronizowane z miejscem docelowym, zmieniając jedynie miejsce docelowe! Ta metoda pomija niezmienione pliki. Ponieważ polecenie może spowodować utratę danych, możesz użyć go z „–dry-run ”, aby zobaczyć, co dokładnie zostanie skopiowane i usunięte.

Przenieś dane za pomocą rclone

Aby przenieść dane, możesz użyć rclone z poleceniem move. Polecenie powinno wyglądać następująco:

rclone move source:path dest:path [flags]

Treść ze źródła zostanie przeniesiona (usunięta) i umieszczona w wybranym miejscu docelowym.

Inne przydatne polecenia rclone

Aby utworzyć katalog w miejscu docelowym.

rclone mkdir remote:path

Aby usunąć katalog.

rclone rmdir remote:path

Sprawdź, czy pliki w źródle i miejscu docelowym są zgodne:

rclone check source:path dest:path

Usuń pliki:

rclone delete remote:path

Każde z poleceń rclone może być używane z różnymi flagami i zawiera własne menu pomocy. Na przykład możesz wykonać usuwanie selektywne, korzystając z opcji usuwania. Powiedzmy, że chcesz usunąć pliki większe niż 100M, polecenie będzie wyglądać następująco.

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

Zdecydowanie zalecamy zapoznanie się z instrukcją i pomocą dotyczącą każdego polecenia, aby w pełni wykorzystać możliwości rclone. Pełna dokumentacja rclone jest dostępna pod adresem: https://rclone.org/

Wniosek

rclone to potężne narzędzie wiersza poleceń, które pomaga zarządzać danymi pomiędzy różnymi dostawcami usług przechowywania w chmurze. Chociaż w tym artykule zarysowaliśmy tylko powierzchnię możliwości rclone, można z nim osiągnąć o wiele więcej, szczególnie w połączeniu z usługą cron (na przykład).