Πώς να χρησιμοποιήσετε το Rsync για συγχρονισμό νέων ή αλλαγμένων/τροποποιημένων αρχείων στο Linux


Ως διαχειριστής συστήματος ή ενεργός χρήστης Linux, ίσως έχετε συναντήσει ή ακόμα και σε πολλές περιπτώσεις, έχετε χρησιμοποιήσει το ευέλικτο εργαλείο Linux Rsync, το οποίο επιτρέπει στους χρήστες να αντιγράφουν ή να συγχρονίζουν γρήγορα αρχεία τοπικά και απομακρυσμένα. Είναι επίσης ένα εξαιρετικό εργαλείο που χρησιμοποιείται ευρέως για λειτουργίες δημιουργίας αντιγράφων ασφαλείας και mirroring.

Μερικά από τα εξέχοντα χαρακτηριστικά και τα πλεονεκτήματά του περιλαμβάνουν: Είναι εξαιρετικά ευέλικτο στο ότι, μπορεί να αντιγράψει τοπικά, σε/από ένα απομακρυσμένο κέλυφος ή απομακρυσμένο rsync, είναι επίσης εξαιρετικά ευέλικτο, επιτρέποντας στους χρήστες να καθορίσουν οποιοδήποτε αριθμό αρχείων προς αντιγραφή.

Προτεινόμενη ανάγνωση: 10 πρακτικά παραδείγματα της εντολής Rsync στο Linux

Επιπλέον, επιτρέπει την αντιγραφή συνδέσμων, συσκευών, κατόχου αρχείων ή καταλόγου, ομάδων και αδειών. Υποστηρίζει επίσης χρήση χωρίς δικαιώματα root σε συνδυασμό με πολλά άλλα.

Μια επιτακτική διαφορά του rsync σε σύγκριση με άλλες εντολές δημιουργίας αρχείων στο Linux είναι η χρήση του πρωτοκόλλου απομακρυσμένης ενημέρωσης, για τη μεταφορά μόνο της διαφοράς μεταξύ αρχείων ή περιεχομένου καταλόγου.

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

Αρχικά, πρέπει να θυμάστε ότι η συμβατική και απλούστερη μορφή χρήσης του rsync είναι η εξής:

rsync options source destination 

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

Τοπικός συγχρονισμός αρχείων με χρήση του Rsync

Χρησιμοποιώντας την παρακάτω εντολή, μπορώ να αντιγράψω αρχεία από τον κατάλογό μου Documents στον κατάλογο /tmp/documents τοπικά:

rsync -av Documents/* /tmp/documents

Στην παραπάνω εντολή, η επιλογή:

  1. -a – σημαίνει λειτουργία αρχειοθέτησης
  2. -v – σημαίνει αναλυτικό, που δείχνει λεπτομέρειες για τις τρέχουσες λειτουργίες

Από προεπιλογή, το rsync αντιγράφει μόνο νέα ή αλλαγμένα αρχεία από μια πηγή στον προορισμό, όταν προσθέτω ένα νέο αρχείο στον κατάλογο Documents μου, αυτό συμβαίνει μετά την εκτέλεση της ίδιας εντολής δεύτερη φορά:

rsync -av Documents/* /tmp/documents

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

Προτεινόμενη ανάγνωση: Τρόπος συγχρονισμού δύο διακομιστών Web Apache/ιστοτόπων χρησιμοποιώντας το Rsync

Η επιλογή --update ή -u επιτρέπει στο rsync να παραλείπει αρχεία που είναι ακόμα νέα στον κατάλογο προορισμού και μια σημαντική επιλογή, --dry-run ή το -n μας δίνει τη δυνατότητα να εκτελέσουμε μια δοκιμαστική λειτουργία χωρίς να κάνουμε αλλαγές. Μας δείχνει ποια αρχεία πρόκειται να αντιγραφούν.

rsync -aunv Documents/* /tmp/documents

Αφού εκτελέσουμε μια δοκιμαστική εκτέλεση, μπορούμε να καταργήσουμε το -n και να εκτελέσουμε μια πραγματική λειτουργία:

rsync -auv Documents/* /tmp/documents

Συγχρονισμός αρχείων από τοπικό σε απομακρυσμένο Linux

Στο παρακάτω παράδειγμα, αντιγράφω αρχεία από τον τοπικό μου υπολογιστή σε έναν απομακρυσμένο διακομιστή με τη διεύθυνση IP – 10.42.1.5. Για να συγχρονίζουμε μόνο νέα αρχεία στον τοπικό υπολογιστή, τα οποία δεν υπάρχουν στο απομακρυσμένο μηχάνημα, μπορούμε να συμπεριλάβουμε την επιλογή --ignore-existing:

rsync -av --ignore-existing Documents/* [email :~/all/

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

rsync -av --dry-run --update Documents/* [email :~/all/
rsync -av --update Documents/* [email :~/all/

Για να ενημερώσουμε υπάρχοντα αρχεία και να αποτρέψουμε τη δημιουργία νέων αρχείων στον προορισμό, χρησιμοποιούμε την επιλογή --υπάρχον.

Μπορείτε να εκτελέσετε τη σελίδα man rsync για να ανακαλύψετε επιπλέον χρήσιμες επιλογές για προηγμένη χρήση, όπως ανέφερα προηγουμένως, το rsync είναι ένα πολύ ισχυρό και ευέλικτο εργαλείο Linux και πολλά συστήματα Οι διαχειριστές και οι χρήστες Linux γνωρίζουν πόσο πλεονεκτικό είναι.

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