15 Παραδείγματα Rsync

15 Paradeigmata Rsync



Η μεταφορά αρχείων από μια τοποθεσία σε άλλη είναι μια πολύ συνηθισμένη εργασία για τον χρήστη Linux. Πολλές επιλογές είναι διαθέσιμες στο Linux για την εκτέλεση αυτής της εργασίας. Το 'rsync' είναι ένα από αυτά. Η πλήρης μορφή του 'rsync' είναι 'Remote Sync'. Είναι ένα πολύ χρήσιμο εργαλείο συγχρονισμού για την αντιγραφή αρχείων και φακέλων από ένα σύστημα σε άλλο σύστημα τοπικά ή απομακρυσμένα. Έχει πολλά περισσότερα πλεονεκτήματα από τα άλλα εργαλεία συγχρονισμού. Αυτό το εργαλείο είναι εγκατεστημένο στο Linux από προεπιλογή. Επομένως, ο χρήστης δεν χρειάζεται να το εγκαταστήσει. Τα πλεονεκτήματα και οι χρήσεις της εντολής «rsync» παρουσιάζονται σε αυτό το σεμινάριο χρησιμοποιώντας 15 απλά παραδείγματα.

Πλεονεκτήματα της Εντολής 'Rsync'.

  1. Είναι ταχύτερο από τα άλλα εργαλεία επειδή αντιγράφει μόνο τα αρχεία από την τοποθεσία προέλευσης στη θέση προορισμού που έχουν τροποποιηθεί ή δεν υπάρχουν στη θέση προορισμού.
  2. Υποστηρίζει την ημιτελή μεταφορά.
  3. Απαιτεί λιγότερο εύρος ζώνης επειδή συμπιέζει τα δεδομένα κατά τη μετάδοση.
  4. Μειώνει την επιβάρυνση της μετάδοσης επειδή τα λιγότερο σημαντικά δεδομένα μπορούν να μεταδοθούν χωρίς κρυπτογράφηση.

Σύνταξη

Η σύνταξη της εντολής «rsync» δίνεται ως εξής:

rsync [Επιλογή] Προορισμός πηγής

Εδώ, οι διαδρομές προέλευσης και προορισμού μπορεί να είναι τοπικές ή απομακρυσμένες. Διαφορετικοί τύποι επιλογών μπορούν να χρησιμοποιηθούν με αυτήν την εντολή για διαφορετικούς σκοπούς.







Χρήσιμες επιλογές της Εντολής 'Rsync'.

Ορισμένες επιλογές που χρησιμοποιούνται συνήθως της εντολής 'rsync' εξηγούνται παρακάτω:



Επιλογή Σκοπός
-Με Χρησιμοποιείται για τη συμπίεση των δεδομένων κατά τη μετάδοση.
-r Χρησιμοποιείται για τον αναδρομικό συγχρονισμό των δεδομένων χωρίς να διατηρείται άδεια αρχείου.
-ένα Χρησιμοποιείται για τον αναδρομικό συγχρονισμό των δεδομένων διατηρώντας όλα τα δικαιώματα αρχείων.
-σι Χρησιμοποιείται για τη διατήρηση αντιγράφων ασφαλείας των δεδομένων κατά τη μετάδοση.
-σε Χρησιμοποιείται για την εμφάνιση της εξόδου σε αναλυτική μορφή.
Χρησιμοποιείται για την εμφάνιση της προόδου της μεταφοράς.
-n Χρησιμοποιείται για να ελέγξει εάν ο συγχρονισμός λειτουργεί ή όχι πριν από τη μεταφορά των αρχείων ή των φακέλων.

Λίστα 15 παραδειγμάτων 'Rsync'.

  1. Μεταφέρετε ένα μεμονωμένο αρχείο και φάκελο τοπικά
  2. Μεταφέρετε πολλά αρχεία και φακέλους τοπικά
  3. Μεταφέρετε ένα μόνο αρχείο και φάκελο από απόσταση
  4. Μεταφέρετε πολλά αρχεία και φακέλους από απόσταση
  5. Εμφάνιση της προόδου της μεταφοράς
  6. Συμπιέστε τα δεδομένα κατά τη μεταφορά
  7. Μεταφορά με το όριο εύρους ζώνης
  8. Μεταφέρετε τα αρχεία και τους φακέλους αναδρομικά
  9. Μεταφορά με το ελάχιστο όριο μεγέθους
  10. Μεταφορά με το μέγιστο όριο μεγέθους
  11. Μεταφέρετε τα αρχεία του συγκεκριμένου τύπου
  12. Εμφάνιση των διαφορών μεταξύ των αρχείων προέλευσης και προορισμού
  13. Συμπεριλάβετε ή εξαιρέστε τα αρχεία κατά τη μεταφορά
  14. Συγχρονίστε τα δεδομένα σε ξηρή λειτουργία
  15. Διαγράψτε τα αρχεία προέλευσης και τους φακέλους μετά τη μεταφορά

Μεταφέρετε ένα μεμονωμένο αρχείο και φάκελο τοπικά

Εκτελέστε την εντολή 'ls' για να εμφανίσετε τη λίστα αρχείων και φακέλων της τρέχουσας τοποθεσίας. Στη συνέχεια, εκτελέστε την εντολή 'rsync' για να μεταφέρετε το αρχείο 'employees.txt' στο αρχείο 'employees_copy.txt' τοπικά. Εκτελέστε ξανά την εντολή 'ls' για να ελέγξετε εάν το αρχείο έχει μεταφερθεί σωστά ή όχι.



$ ls
$ rsync staffs.txt staffs_copy.txt
$ ls

Η ακόλουθη έξοδος δείχνει ότι το αρχείο 'employee.txt' μεταφέρθηκε με επιτυχία:





Ας υποθέσουμε ότι το περιεχόμενο του φακέλου temp πρέπει να μεταφερθεί στον φάκελο tempdir όπου υπάρχει το αρχείο 'courses.txt' και στους δύο φακέλους. Εκτελέστε την εντολή 'ls temp' για να ελέγξετε το περιεχόμενο του φακέλου temp. Στη συνέχεια, εκτελέστε την εντολή 'cat temp/courses.txt' για να ελέγξετε το περιεχόμενο αυτού του αρχείου. Στη συνέχεια, εκτελέστε την εντολή 'ls tempdir' για να ελέγξετε το περιεχόμενο του φακέλου tempdir. Στη συνέχεια, εκτελέστε την εντολή 'cat tempdir/courses.txt' για να ελέγξετε το περιεχόμενο αυτού του αρχείου.



$ ls θερμοκρασία
$ cat temp/courses.txt
$ lstempdir
$ cat tempdir/courses.txt

Η έξοδος δείχνει ότι το περιεχόμενο του αρχείου 'courses.txt' των φακέλων temp και tempdir είναι ελαφρώς διαφορετικό και το αρχείο 'courses.txt' του φακέλου temp περιέχει περισσότερα δεδομένα από το αρχείο 'courses.txt' του φακέλου tempdir .

Εκτελέστε την ακόλουθη εντολή για να μεταφέρετε το περιεχόμενο του φακέλου temp στο φάκελο tempdir και ελέγξτε το περιεχόμενο του αρχείου 'courses.txt' του φακέλου tempdir για να επιβεβαιώσετε ότι το αρχείο έχει ενημερωθεί σωστά ή όχι:

$ rsync -a temp/ tempdir/
$ lstempdir
$ cat tempdir/courses.txt

Η ακόλουθη έξοδος δείχνει ότι το περιεχόμενο του φακέλου temp μεταφέρεται σωστά στο φάκελο tempdir και ότι το περιεχόμενο του αρχείου 'courses.txt' του φακέλου tempdir ενημερώνεται σωστά:

Μεταφέρετε πολλά αρχεία και φακέλους τοπικά

Η εντολή 'rsync' μπορεί να χρησιμοποιηθεί για τη μεταφορά πολλών αρχείων και φακέλων τοπικά. Εκτελέστε την ακόλουθη εντολή για να μεταφέρετε τα αρχεία 'ping1.bash' και 'ping2.bash' στον φάκελο tempdir και ελέγξτε το περιεχόμενο του φακέλου tempdir μετά τη μεταφορά. Η επιλογή -v χρησιμοποιείται με την εντολή 'rsync' για την εμφάνιση της εξόδου σε αναλυτική μορφή:

$ rsync -v ping1.bash ping2.bash tempdir/
$ lstempdir

Η ακόλουθη έξοδος δείχνει ότι πολλά αρχεία μεταφέρονται σωστά στο φάκελο tempdir:

Εκτελέστε τις ακόλουθες εντολές για να ελέγξετε το περιεχόμενο των φακέλων temp, tempdir και test και να μεταφέρετε το περιεχόμενο του φακέλου test και tempdir στον φάκελο temp:

$ ls θερμοκρασία
$ lstempdir
Δοκιμή $ ls
$ rsync -av test/ tempdir/ temp/
$ ls θερμοκρασία

Η έξοδος δείχνει ότι το περιεχόμενο των φακέλων test και tempdir μεταφέρεται με επιτυχία στον φάκελο temp. Τα αρχεία 'customers.csv', 'ping1.bash' και 'ping2.bash' προστίθενται ως νέα αρχεία στον προσωρινό φάκελο:

Μεταφέρετε ένα μόνο αρχείο και φάκελο από απόσταση

Πρέπει να εγκαταστήσετε και να ρυθμίσετε τον διακομιστή SSH στην απομακρυσμένη θέση για να μεταφέρετε τα αρχεία και τους φακέλους από απόσταση. Μπορείτε να ελέγξετε αυτό φροντιστήριο για να ρυθμίσετε τις παραμέτρους του διακομιστή SSH.

Εκτελέστε την ακόλουθη εντολή για να ελέγξετε το μέγεθος του αρχείου 'courses.txt' της τρέχουσας τοποθεσίας:

ls -la courses.txt

Η έξοδος δείχνει ότι το μέγεθος του αρχείου 'courses.txt' είναι 65 byte:

Εκτελέστε την ακόλουθη εντολή για να μεταφέρετε το 'courses.txt' στο /home/ubuntu/courses/ φάκελο της απομακρυσμένης τοποθεσίας, ubuntu@192.168.0.101. Πρέπει να δώσετε τον κωδικό πρόσβασης root του απομακρυσμένου μηχανήματος πριν μεταφέρετε το αρχείο:

rsync -v courses.txt  ubuntu@192.168.0.101:/home/ubuntu/courses/

Η ακόλουθη έξοδος δείχνει ότι το αρχείο 'courses.txt' μεταφέρεται σωστά στο απομακρυσμένο μηχάνημα και το μέγεθος του αρχείου είναι 65 byte:

Εκτελέστε την ακόλουθη εντολή για να μεταφέρετε τον φάκελο temp στο /home/ubuntu/courses/ φάκελο της απομακρυσμένης τοποθεσίας, ubuntu@192.168.0.101. Πρέπει να δώσετε τον κωδικό πρόσβασης root του απομακρυσμένου μηχανήματος πριν μεταφέρετε το αρχείο όπως η προηγούμενη εντολή.

rsync -av temp/ ubuntu@192.168.0.101:/home/ubuntu/courses/

Η ακόλουθη έξοδος δείχνει ότι το περιεχόμενο του φακέλου temp μεταφέρεται σωστά στο απομακρυσμένο μηχάνημα:

Μεταφέρετε πολλά αρχεία και φακέλους από απόσταση

Η ακόλουθη εντολή 'rsync' μεταφέρει τα αρχεία 'customers.csv' και 'department.json' στο /home/Ubuntu/files/ φάκελο της απομακρυσμένης τοποθεσίας, ubuntu@192.168.0.101.

rsync -av customers.csv Department.json ubuntu@192.168.0.101:/home/ubuntu/files/

Η ακόλουθη έξοδος δείχνει ότι πολλά αρχεία μεταφέρονται με επιτυχία στην απομακρυσμένη τοποθεσία:

Η ακόλουθη εντολή 'rsync' μεταφέρει το περιεχόμενο των φακέλων temp και test και του αρχείου 'department.json' στο /home/Ubuntu/files/ φάκελο της απομακρυσμένης τοποθεσίας, ubuntu@192.168.0.101.

rsync -av temp/ test/ Department.json ubuntu@192.168.0.101:/home/ubuntu/files/

Η ακόλουθη έξοδος δείχνει ότι το περιεχόμενο των πολλαπλών φακέλων μεταφέρεται με επιτυχία στην απομακρυσμένη θέση:

Εμφάνιση της προόδου της μεταφοράς

Εκτελέστε την εντολή «rsync» με την επιλογή –progress για να μεταφέρετε το περιεχόμενο του φακέλου tempdir στον φάκελο temp_copy με τις πληροφορίες προόδου.

rsync -a tempdir/ temp_copy --πρόοδος

Η ακόλουθη έξοδος δείχνει ότι ο κατάλογος temp_copy δημιουργείται τοπικά και το περιεχόμενο του φακέλου tempdir μεταφέρεται με επιτυχία στον φάκελο temp_copy:

Συμπιέστε τα δεδομένα κατά τη μεταφορά

Εκτελέστε την ακόλουθη εντολή 'rsync' με την επιλογή –z για να συμπιέσετε και να μεταφέρετε τον κατάλογο tempdir στον κατάλογο δοκιμής τοπικά:

rsync -za tempdir/test/

Η ακόλουθη έξοδος δείχνει ότι ο συμπιεσμένος κατάλογος μεταφέρεται με επιτυχία τοπικά:

Μεταφορά με το όριο εύρους ζώνης

Εκτελέστε την ακόλουθη εντολή 'rsync' με την επιλογή –bwlimit με τιμή 100 για να μεταφέρετε το αρχείο /etc/passwd στον φάκελο temp τοπικά:

rsync -v --bwlimit=100 etc/passwd temp/

Η ακόλουθη έξοδος δείχνει ότι το αρχείο passwd μεταφέρθηκε με επιτυχία:

Μεταφέρετε το αρχείο και το φάκελο αναδρομικά

Εκτελέστε την ακόλουθη εντολή 'rsync' με την επιλογή –rv για να μεταφέρετε τον φάκελο δοκιμής στον φάκελο test_bak τοπικά:

rsync -rv test/ test_bak/

Η ακόλουθη έξοδος δείχνει ότι ο φάκελος δοκιμής μεταφέρθηκε με επιτυχία στον φάκελο test_bak:

Μεταφορά με το ελάχιστο όριο μεγέθους

Η μεταφορά των αρχείων και των φακέλων χρησιμοποιώντας την εντολή 'rsync' μπορεί να περιοριστεί χρησιμοποιώντας την επιλογή –min-size για να ορίσετε το ελάχιστο όριο μεγέθους της μεταφοράς αρχείων και φακέλων. Εκτελέστε την ακόλουθη εντολή 'ls -la tempdir' για να ελέγξετε το μέγεθος κάθε αρχείου και φακέλου αυτού του φακέλου. Στη συνέχεια, εκτελέστε την εντολή 'rsync' για να μεταφέρετε το περιεχόμενο του φακέλου tempdir στον φάκελο tempdir_bak με το ελάχιστο όριο μεγέθους.

ls -la tempdir
rsync -av --min-size='245B' tempdir/tempdir_bak

Η ακόλουθη έξοδος δείχνει ότι υπάρχουν δύο αρχεία στο φάκελο tempdir που ταιριάζει με το ελάχιστο μέγεθος. Αυτά είναι τα 'ping1.bash' (248 byte) και 'test.txt' (34504 byte). Αυτά τα αρχεία μεταφέρονται στο φάκελο tempdir_bak και τα άλλα αρχεία του φακέλου tempdir παραλείπονται:

Μεταφορά με το μέγιστο όριο μεγέθους

Η μεταφορά των αρχείων και των φακέλων χρησιμοποιώντας την εντολή «rsync» μπορεί να περιοριστεί χρησιμοποιώντας την επιλογή –max-size για να ορίσετε το μέγιστο όριο μεγέθους των αρχείων και φακέλων μεταφοράς. Εκτελέστε την ακόλουθη εντολή 'ls -la temp' για να ελέγξετε το μέγεθος κάθε αρχείου και φακέλου αυτού του φακέλου. Στη συνέχεια, εκτελέστε την εντολή 'rsync' για να μεταφέρετε το περιεχόμενο του φακέλου temp στον φάκελο temp_bak με το μέγιστο όριο μεγέθους.

ls -la θερμοκρασία
rsync --max-size='250B' temp/ temp_bak/

Η ακόλουθη έξοδος δείχνει ότι υπάρχουν τέσσερα αρχεία στον φάκελο temp που αντιστοιχεί στο μέγιστο όριο μεγέθους. Αυτά είναι τα 'courses.txt' (65 bytes), 'employees.csv' (361 byte), 'ping1.bash' (248 bytes) και 'ping2.bash' (244 byte). Αυτά τα αρχεία μεταφέρονται στο φάκελο temp_bak και τα άλλα αρχεία στον φάκελο temp παραλείπονται:

Μεταφέρετε τα αρχεία του συγκεκριμένου τύπου

Ο τύπος του αρχείου που θα μεταφερθεί μπορεί να οριστεί αναφέροντας την επέκταση του αρχείου στην εντολή «rsync». Εκτελέστε την ακόλουθη εντολή 'rsync' για να μεταφέρετε όλα τα αρχεία κειμένου του φακέλου temp στον φάκελο mydir. Εδώ, η επέκταση του αρχείου κειμένου σημειώνεται χρησιμοποιώντας το '*.txt':

rsync -v temp/*.txt mydir/

Η ακόλουθη έξοδος δείχνει ότι δύο αρχεία κειμένου, τα 'courses.txt' και 'test.txt', μεταφέρονται στο φάκελο mydir και τα άλλα αρχεία του φακέλου temp παραλείπονται:

Εμφάνιση των διαφορών μεταξύ των αρχείων προέλευσης και προορισμού

Όταν τα αρχεία ή οι φάκελοι μεταφέρονται από μια τοποθεσία σε άλλη τοπικά ή απομακρυσμένα, και οι δύο θέσεις ενδέχεται να περιέχουν τα ίδια αρχεία ή φακέλους. Οι διαφορές μεταξύ της πηγής και του προορισμού κατά τη διάρκεια της μετάδοσης μπορούν να εξεταστούν χρησιμοποιώντας την επιλογή -i με την εντολή «rsync». Εκτελέστε τις ακόλουθες εντολές 'cat' για να ελέγξετε το περιεχόμενο της πηγής και του αρχείου προορισμού πριν από τη μεταφορά. Εδώ, το αρχείο 'courses.txt' μεταφέρεται στον φάκελο temp.

μαθήματα για γάτες.txt
cat temp/courses.txt
rsync -avi courses.txt temp/

Η ακόλουθη έξοδος δείχνει ότι το αρχείο 'courses.txt' της πηγής και του προορισμού είναι ελαφρώς διαφορετικά. Η έξοδος της εντολής 'rsync' δείχνει τη διαφορά μεταξύ των αρχείων:

Συγχρονίστε τα δεδομένα σε ξηρή λειτουργία

Εάν θέλετε να μάθετε ποια αρχεία και φακέλους μεταφέρονται από την εντολή «rsync» πριν από την πραγματική μεταφορά, είναι προτιμότερο να εκτελέσετε την εντολή «rsync» με την επιλογή –dry-run ή την επιλογή –n. Όταν η εντολή «rsync» εκτελείται με αυτήν την επιλογή, ελέγχει ποια αρχεία ή φακέλους έχουν αντιγραφεί από τον φάκελο προέλευσης στον φάκελο προορισμού, αλλά διατηρεί τον φάκελο προορισμού αμετάβλητο. Εκτελέστε το αρχείο “ls –la Department.json” για να ελέγξετε το μέγεθος του αρχείου. Στη συνέχεια, εκτελέστε την εντολή «rsync» με τη λειτουργία –dry-run για να ελέγξετε τη μεταφορά του «department.json» στον φάκελο temp.

ls -la Department.json
rsync -v --dry-run Department.json temp/

Η ακόλουθη έξοδος δείχνει ότι το μέγεθος του αρχείου 'department.json' είναι 1172 byte. Το μέγεθος του αρχείου δείχνει 1172 byte μετά την εκτέλεση της εντολής «rsync» με την επιλογή –dry-run:

Συμπεριλάβετε ή εξαιρέστε τα αρχεία κατά τη μεταφορά

Μπορείτε να φιλτράρετε τον τύπο του αρχείου τη στιγμή της μεταφοράς από την τοποθεσία προέλευσης στη θέση προορισμού χρησιμοποιώντας τις επιλογές –include και –exclude. Η επιλογή 'optionsinclude' χρησιμοποιείται για τον καθορισμό της επέκτασης αυτών των αρχείων που θα μεταφερθούν από την πηγή στον προορισμό. Η επιλογή –exclude χρησιμοποιείται για τον καθορισμό της επέκτασης εκείνων των αρχείων που δεν θα μεταφερθούν από την πηγή στον προορισμό.

Εκτελέστε τον ακόλουθο φάκελο 'ls temp' για να ελέγξετε το περιεχόμενο του φακέλου temp. Στη συνέχεια, εκτελέστε την εντολή «rsync» με τις επιλογές –include και –exclude. Σύμφωνα με την εντολή, όλα τα αρχεία CSV του φακέλου temp μεταφέρονται στο φάκελο αρχείων και όλα τα αρχεία κειμένου του φακέλου temp παραλείπονται τη στιγμή της μεταφοράς. Στη συνέχεια, εκτελέστε την εντολή 'ls files' για να ελέγξετε ποια αρχεία μεταφέρονται από τον φάκελο temp στο φάκελο αρχείων.

Θερμ
rsync -a temp/ files/ --include=*.csv --exclude=*.txt
ls αρχεία

Η ακόλουθη έξοδος δείχνει ότι ο φάκελος temp περιέχει δύο αρχεία CSV, δύο αρχεία κειμένου και δύο αρχεία BASH. Ο φάκελος αρχείων είναι κενός πριν από τη μεταφορά και μεταφέρονται δύο αρχεία CSV και δύο αρχεία BASH:

Διαγράψτε τα αρχεία προέλευσης και τους φακέλους μετά τη μεταφορά

Στις προηγούμενες εντολές 'rsync', τα αρχεία προέλευσης και οι φάκελοι παραμένουν στη θέση προέλευσης μετά τη μεταφορά τους στη θέση προορισμού. Αλλά μερικές φορές, απαιτεί μόνιμη μεταφορά των αρχείων και των φακέλων στη θέση προορισμού. Αυτή η εργασία μπορεί να γίνει χρησιμοποιώντας την επιλογή –remove-source-files με την εντολή “rsync”. Εκτελέστε την εντολή 'ls' για να ελέγξετε όλα τα αρχεία και τους φακέλους της τρέχουσας τοποθεσίας. Εκτελέστε την εντολή 'ls temp' για να ελέγξετε τα αρχεία και τους φακέλους του φακέλου temp. Στη συνέχεια, εκτελέστε την εντολή «rsync» με την επιλογή –remove-source-files για να διαγράψετε τα αρχεία και τους φακέλους της τοποθεσίας προέλευσης μετά την ολοκλήρωση της μεταφοράς. Εκτελέστε ξανά την εντολή 'ls' για να ελέγξετε εάν το αρχείο προέλευσης έχει αφαιρεθεί από την τοποθεσία προέλευσης ή όχι.

ls
Θερμ
rsync  staffs.csv temp/ --remove-source-files
ls

Η ακόλουθη έξοδος δείχνει ότι το αρχείο 'employees.csv' της τρέχουσας τοποθεσίας μεταφέρεται στον προσωρινό φάκελο και το αρχείο 'employees.csv' αφαιρείται από την τοποθεσία προέλευσης μετά τη μεταφορά:

συμπέρασμα

Το «rsync» είναι ένα πολύ χρήσιμο εργαλείο του Linux που διευκολύνει τη μετάδοση αρχείων και φακέλων από μια τοποθεσία σε άλλη, χρησιμοποιώντας διαφορετικές επιλογές. Οι μέθοδοι χρήσης της εντολής 'rsync' για τη μεταφορά αρχείων και φακέλων από μια θέση σε άλλη θέση με συμπίεση, ρύθμιση μεγέθους αρχείων και φακέλων, ρύθμιση τύπου αρχείου, ρύθμιση ορίου εύρους ζώνης, κ.λπ. παρουσιάζονται σε 15 απλά παραδείγματα αυτό το σεμινάριο. Αυτό το σεμινάριο βοηθά τους χρήστες Linux να γνωρίζουν σωστά τις βασικές χρήσεις της εντολής 'rsync' στο Linux.