Rclone - Συγχρονισμός καταλόγων αρχείων από διαφορετικό Cloud Storage


Το Rclone είναι ένα πρόγραμμα γραμμής εντολών γραμμένο σε γλώσσα Go, που χρησιμοποιείται για συγχρονισμό αρχείων και καταλόγων από διαφορετικούς παρόχους αποθήκευσης cloud, όπως: Amazon Drive, Amazon S3, Backblaze B2, Box, Ceph, DigitalOcean Spaces, Dropbox, FTP, Google Cloud Storage, Google Οδήγηση κ.λπ.

Όπως βλέπετε, υποστηρίζει πολλές πλατφόρμες, γεγονός που το καθιστά ένα χρήσιμο εργαλείο για το συγχρονισμό των δεδομένων σας μεταξύ διακομιστών ή σε έναν ιδιωτικό χώρο αποθήκευσης.

Το Rclone έρχεται με τις ακόλουθες δυνατότητες

  • MD5/SHA1 hash checks at all times for ensuring file integrity integrity.
  • Timestamps are preserved on files.
  • Partial syncs supported on a whole file basis.
  • Copy mode for new or changed files.
  • One way sync to make a directory identical.
  • Check mode – hash equality check.
  • Can sync to and from network, eg two different cloud accounts.
  • (Encryption) backend.
  • (Cache) backend.
  • (Union) backend.
  • Optional FUSE mount (rclone mount).

Πώς να εγκαταστήσετε το rclone σε συστήματα Linux

Η εγκατάσταση του rclone μπορεί να ολοκληρωθεί με δύο διαφορετικούς τρόπους. Το πιο εύκολο είναι η χρήση του σεναρίου εγκατάστασης, εκδίδοντας την ακόλουθη εντολή.

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

Αυτό που κάνει αυτό το σενάριο είναι να ελέγξει τον τύπο λειτουργικού συστήματος στον οποίο εκτελείται και να κατεβάσετε το αρχείο που σχετίζεται με αυτό το λειτουργικό σύστημα. Στη συνέχεια, εξάγει το αρχείο και αντιγράφει το δυαδικό rclone στο/usr/bin/rclone και δίνει 755 δικαιώματα στο αρχείο.

Στο τέλος, όταν ολοκληρωθεί η εγκατάσταση, θα πρέπει να δείτε την ακόλουθη γραμμή:

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

Ο δεύτερος τρόπος για να εγκαταστήσετε το rclone είναι με την έκδοση των παρακάτω εντολών.

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

Τώρα αντιγράψτε το δυαδικό αρχείο και δώστε του εκτελέσιμα δικαιώματα.

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

Εγκαταστήστε το rclone manpage.

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

Πώς να ρυθμίσετε το rclone σε συστήματα Linux

Στη συνέχεια, αυτό που θα πρέπει να κάνετε είναι να εκτελέσετε το rclone config για να δημιουργήσετε το αρχείο config. Θα χρησιμοποιηθεί για έλεγχο ταυτότητας για μελλοντική χρήση του rclone. Για να εκτελέσετε τη ρύθμιση παραμέτρων εκτελέστε την ακόλουθη εντολή.

# rclone config

Θα δείτε το ακόλουθο μήνυμα:

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>

Οι επιλογές είναι οι εξής:

  • n) – Create new remote connection
  • s) – set password protection for your configuration
  • q) – exit the config

Για τους σκοπούς αυτού του σεμιναρίου, πατήστε n και δημιουργήστε νέα σύνδεση. Θα σας ζητηθεί να δώσετε ένα όνομα στη νέα σύνδεση. Μετά από αυτό θα σας ζητηθεί να επιλέξετε τον τύπο αποθήκευσης που θα διαμορφωθεί:

Έχω ονομάσει με σύνδεση "Google" και επέλεξα το "Google Drive", το οποίο βρίσκεται κάτω από τον αριθμό 12. Οι υπόλοιπες ερωτήσεις που μπορείτε να απαντήσετε αφήνοντας απλώς την προεπιλεγμένη απάντηση, η οποία είναι κενή "".

Όταν σας ζητηθεί, μπορείτε να επιλέξετε "autoconfig", το οποίο θα δημιουργήσει όλες τις απαιτούμενες πληροφορίες για να συνδεθείτε στο Google Drive σας και να δώσει rclone δικαιώματα χρήσης δεδομένων από το Google Drive.

Η διαδικασία μοιάζει κάπως έτσι:

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

Πώς να χρησιμοποιήσετε το rclone σε συστήματα Linux

Το Rclone έχει μια αρκετά μεγάλη λίστα διαθέσιμων επιλογών και εντολών για χρήση. Θα προσπαθήσουμε να καλύψουμε μερικά από τα πιο σημαντικά:

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

Σημειώστε ότι εάν το rclone εντοπίσει διπλότυπα, αυτά θα αγνοηθούν:

Εάν θέλετε να συγχρονίσετε ορισμένα δεδομένα μεταξύ καταλόγων, θα πρέπει να χρησιμοποιήσετε την εντολή rclone με συγχρονισμό.

Η εντολή πρέπει να έχει την εξής μορφή:

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

Σε αυτήν την περίπτωση η πηγή συγχρονίζεται με τον προορισμό, αλλάζοντας μόνο τον προορισμό! Αυτή η μέθοδος παραλείπει αμετάβλητα αρχεία. Επειδή η εντολή μπορεί να προκαλέσει απώλεια δεδομένων, μπορείτε να τη χρησιμοποιήσετε με το "-dry-run" για να δείτε τι ακριβώς θα αντιγραφεί και θα διαγραφεί.

Για να μετακινήσετε δεδομένα, μπορείτε να χρησιμοποιήσετε την εντολή rclone με κίνηση. Η εντολή πρέπει να έχει την εξής μορφή:

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

Το περιεχόμενο από την πηγή, θα μετακινηθεί (διαγραφεί) και θα τοποθετηθεί στον επιλεγμένο προορισμό.

Για να δημιουργήσετε έναν κατάλογο στον προορισμό.

# rclone mkdir remote:path

Για να καταργήσετε έναν κατάλογο.

# rclone rmdir remote:path

Ελέγξτε αν τα αρχεία στην πηγή και στον προορισμό ταιριάζουν:

# rclone check source:path dest:path

Διαγραφή αρχείων:

# rclone delete remote:path

Κάθε εντολή rclone μπορεί να χρησιμοποιηθεί με διαφορετικές σημαίες και περιλαμβάνει το δικό της μενού βοήθειας. Για παράδειγμα, μπορείτε να κάνετε μια επιλεκτική διαγραφή χρησιμοποιώντας την επιλογή διαγραφής. Ας πούμε ότι θέλετε να διαγράψετε αρχεία μεγαλύτερα από 100M, η εντολή θα μοιάζει με αυτό.

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

Συνιστάται ιδιαίτερα να διαβάσετε το εγχειρίδιο και να βοηθήσετε κάθε εντολή για να αξιοποιήσετε στο έπακρο το rclone. Η πλήρης τεκμηρίωση του rclone διατίθεται στη διεύθυνση: https://rclone.org/

Το rclone είναι ένα ισχυρό βοηθητικό πρόγραμμα γραμμής εντολών που σας βοηθά να διαχειρίζεστε δεδομένα μεταξύ διαφορετικών παρόχων αποθήκευσης Cloud. Ενώ σε αυτό το άρθρο γρατσουνίσαμε μόνο την επιφάνεια των δυνατοτήτων rclone, υπάρχουν πολλά περισσότερα που πρέπει να επιτευχθούν με αυτό ειδικά όταν χρησιμοποιείται σε συνδυασμό με την υπηρεσία cron (για παράδειγμα).