Μεταφορά αρχείων από υπηρεσίες Cloud¶
Η υποδομή υποστηρίζει τη δυνατότητα μεταφοράς δεδομένων από και προς υπηρεσίες αποθήκευσης νέφους τρίτων, όπως Google Drive, με το εργαλείο rclone
.
Το rclone
λειτουργεί σε δύο βήματα: (α) ρύθμιση και (β) χρήση. Παρακάτω θα βρείτε συγκεκριμένες οδηγίες για ορισμένες υπηρεσίες αποθήκευσης νέφους.
- Ενεργοποίηση
rclone
$ module load gcc/10.2.0 rclone
Ρύθμιση¶
Google Drive¶
Με τα παρακάτω βήματα θα δώσουμε, μέσω της rclone
, στον λογαριασμό μας στο login κόμβο δικαιώματα πρόσβασης σε ένα drive στο Google Drive.
Η ρύθμιση γίνεται σε διαδραστικό περιβάλλον shell με την εντολή:
$ rclone config
Στο αρχικό μενού επιλέγουμε n
, για νέο remote.
Στη συνέχεια συμπληρώνουμε τα υπόλοιπα πεδία ως εξής:
Πεδίο | Απάντηση |
---|---|
name> |
Ένα όνομα για το drive που θα χρησιμοποιούμε όταν μεταφέρουμε αρχεία (π.χ. my-team-project-drive ) |
Storage> |
drive |
client_id> |
κενό |
client_secret> |
κενό |
scope> |
drive |
root_folder_id> |
Χρειάζεται μόνο όταν θέλουμε να διαβάζουμε και να γράφουμε σε συγκεκριμένο φάκελο του drive και όχι σε όλο το drive. Αλλιώς αφήνουμε κενό. |
service_account_file> |
κενό |
|
κενό για χρήση default |
|
N |
Στο στάδιο αυτό πρέπει να ρυθμίσουμε την πρόσβαση του χρήστη μας. Στο τερματικό θα εμφανιστεί ένα link όπως το παρακάτω:
Please go to the following link: https://accounts.google.com/o/oauth2/
auth?access_type=offline&client_id=...
Σε έναν browser ακολουθούμε το link όπου θα ζητηθεί να κάνουμε login με το λογαριασμό στον οποίο θέλουμε να δώσουμε πρόσβαση. Στη συνέχεια στον browser θα εμφανιστεί ένας κωδικός επαλήθευσης τον οποίο αντιγράφουμε στο τερματικό στο πεδίο Enter verification code>
.
Στο Configure this as a team drive
επιλέγουμε y
:
Configure this as a team drive?
y) Yes
n) No (default)
y/n> y
Επιλογή team drive
Εάν δεν υπάρχουν κοινόχρηστα drives στο Google Drive μας ή αν επιλέξουμε n
, το rclone
θα επιλέξει το προσωπικό μας drive. Εάν θέλουμε να χρησιμοποιήσουμε ένα κοινόχρηστο drive, ελέγχουμε προηγουμένως ότι φαίνεται στα Κοινά Drive του Google Drive.
Στο σημείο αυτό, τα κοινά drives του Google Drive θα εμφανιστούν στο terminal και θα πρέπει να επιλεγεί ένα από αυτά. Επιλέγουμε το επιθυμητό drive (π.χ. 2
για my-team-project-drive
):
Fetching team drive list...
Choose a number from below, or type in your own value
1 / my-other-team-project-drive
\ "XXXXXXXX"
2 / my-team-project-drive
\ "YYYYYYYY"
Enter a Team Drive ID> 2
Τέλος, επιβεβαιώνουμε τις επιλογές μας με y
και επιλέγουμε q
για έξοδο από το interactive shell. Το rclone
έχει ρυθμιστεί και μπορούμε να το χρησιμοποιήσουμε.
Αρχείο ρυθμίσεων rclone
Στο αρχείο ~/.config/rclone/rclone.conf
περιέχονται όλες οι ρυθμίσεις drives που έχουμε κάνει με το rclone
.
Ρύθμιση φακέλου drive¶
Εάν επιθυμούμε να μεταφέρουμε αρχεία από και προς μόνο ένα συγκεκριμένο φακέλο ενός drive, τότε:
- Βρίσκουμε από το URL του φακέλου στον browser το folder id.
- Χρησιμοποιούμε το id αυτό στο πεδίο
root_folder_id>
κατά τη ρύθμιση τουrclone
.
Εύρεση root folder id
Επιλέγουμε το φάκελο:
Αντιγράφουμε το folder id:
Χρησιμοποιούμε το id αυτό κατά τη ρύθμιση του rclone
:
$ rclone config
...
root_folder_id> 1FpxxxxxxxxxxxxxxxxxxxxxxxxfSYs
...
Χρήση¶
Ακολουθούν παραδείγματα χρήσης του rclone. Στα παρακάτω παραδείγματα, my-team-project-drive
είναι το όνομα του drive που δώσαμε στο πεδίο name>
κατά τη ρύθμιση.
Σημείωση
Δεν υποστηρίζεται ο συνεχής και αυτόματος συγχρονισμός του drive με rclone mount
.
Αντιγραφή αρχείων¶
Αντιγραφή ενός αρχείου από το Google Drive στον login κόμβο
$ rclone copy my-team-project-drive:/path/to/file.txt ./local-directory/path/to
Αντιγραφή ενός αρχείου από τον login κόμβο στο Google Drive
$ rclone copy ./local-directory/path/to/file.txt my-team-project-drive:/path/to/
Αντιγραφή όλου του drive¶
Αντιγραφή ολόκληρου drive από το Google Drive προς το home directory στον login κόμβο
$ rclone sync my-team-project-drive: ~/local-directory
Αντιγραφή ολόκληρου drive από τον login κόμβο προς το Google Drive
$ rclone sync ~/local-directory my-team-project-drive:
Προσοχή
Κατά την αντιγραφή με sync, όσα αρχεία άλλαξαν ή διαγράφτηκαν τοπικά, θα υποστούν μεταβολές και στο Google Drive, και αντίστροφα.
Μεταφορά αρχείων από remote storage με sshfs¶
Για να κάνουμε mount ένα remote filesystem, μπορούμε να χρησιμοποιήσουμε τον SSHFS
client, εφόσον ο server στον οποίο φιλοξενείται υποστηρίζει SFTP
. Για τον σκοπό αυτό, μπορούμε να χρησιμοποιήσουμε την εντολή sshfs
ως εξής:
SSHFS: mount remote filesystem
$ sshfs [user@]hostname:[directory] mountpoint
Μπορούμε να δούμε οδηγίες για τα επιπλέον options της εντολή sshfs
προσθέτοντας το --help
option ως εξής:
$ sshfs --help