27Jun
rsync είναι ένα πρωτόκολλο που έχει σχεδιαστεί για συστήματα που μοιάζουν με Unix και παρέχει απίστευτη ευελιξία για την δημιουργία αντιγράφων ασφαλείας και συγχρονισμό δεδομένων.Μπορεί να χρησιμοποιηθεί τοπικά για τη δημιουργία αντιγράφων ασφαλείας αρχείων σε διαφορετικούς καταλόγους ή μπορεί να ρυθμιστεί ώστε να συγχρονίζεται σε ολόκληρο το Διαδίκτυο σε άλλους κεντρικούς υπολογιστές.
Μπορεί να χρησιμοποιηθεί σε συστήματα Windows, αλλά είναι διαθέσιμο μόνο μέσω διαφόρων λιμένων( όπως Cygwin), έτσι σε αυτό το πώς θα μιλάμε για τη δημιουργία του στο Linux.Πρώτον, πρέπει να εγκαταστήσουμε / να ενημερώσουμε τον πελάτη rsync.Στις διανομές του Red Hat, η εντολή είναι "yum install rsync" και στο Debian είναι "sudo apt-get install rsync".
Η εντολή στο Red Hat / CentOS, αφού συνδεθεί ως root( σημειώστε ότι ορισμένες πρόσφατες διανομές του Red Hatυποστηρίξτε τη μέθοδο sudo).
Η εντολή στο Debian / Ubuntu.
Χρήση του rsync για τοπικά αντίγραφα ασφαλείας
Στο πρώτο μέρος αυτού του φροντιστηρίου, θα δημιουργήσουμε αντίγραφα ασφαλείας των αρχείων από τον κατάλογο1 στον κατάλογο2.Και οι δύο αυτοί καταλόγοι βρίσκονται στον ίδιο σκληρό δίσκο, αλλά αυτό θα λειτουργούσε ακριβώς το ίδιο αν οι κατάλογοι υπήρχαν σε δύο διαφορετικές μονάδες δίσκου.Υπάρχουν πολλοί διαφορετικοί τρόποι με τους οποίους μπορούμε να προσεγγίσουμε αυτό, ανάλογα με το είδος των αντιγράφων ασφαλείας που θέλετε να διαμορφώσετε.Για τους περισσότερους σκοπούς, αρκεί η ακόλουθη γραμμή κώδικα:
$ rsync -av - διαγραφή /Directory1/ /Directory2/
Ο παραπάνω κώδικας θα συγχρονίσει τα περιεχόμενα του Directory1 με τον Directory2 και δεν θα αφήνει καμία διαφορά μεταξύ των δύο.Εάν το rsync διαπιστώσει ότι το Directory2 έχει ένα αρχείο που δεν είναι ο κατάλογος1, θα το διαγράψει.Αν το rsync εντοπίσει ένα αρχείο που έχει αλλάξει, δημιουργηθεί ή διαγραφεί στον κατάλογο1, θα αντικατοπτρίζει τις ίδιες αλλαγές στον κατάλογο2.
Υπάρχουν πολλοί διαφορετικοί διακόπτες που μπορείτε να χρησιμοποιήσετε για το rsync για να το προσαρμόσετε στις συγκεκριμένες ανάγκες σας.Εδώ είναι αυτό που ο προαναφερθείς κώδικας λέει στο rsync να κάνει με τα αντίγραφα ασφαλείας:
1. -a = αναδρομικό( επανάληψη σε καταλόγους), συνδέσμους( αντιγραφή συμβολικών συμβόλων), perms( διατήρηση αδειών), φορές( διατήρηση χρόνων τροποποίησης)διατήρηση ομάδας), ιδιοκτήτης( διατήρηση ιδιοκτήτη), διατήρηση αρχείων συσκευής και διατήρηση ειδικών αρχείων.
2. -v = verbose.Ο λόγος που πιστεύω ότι είναι πολύ σημαντικός είναι να βλέπετε ακριβώς τι υποστηρίζει το rsync.Σκεφτείτε το εξής: Τι γίνεται αν ο σκληρός σας δίσκος πάει άσχημα και ξεκινά τη διαγραφή αρχείων χωρίς τη γνώση σας, τότε εκτελείτε το rsync script σας και ωθεί αυτές τις αλλαγές στα αντίγραφα ασφαλείας σας, διαγράφοντας έτσι όλες τις εμφανίσεις ενός αρχείου που δεν θέλετε να πάρετεαπαλλαγούμε από?
3. -delete = Αυτό ειδοποιεί το rsync να διαγράψει όλα τα αρχεία που βρίσκονται στον κατάλογο2 που δεν βρίσκονται στον κατάλογο1.Εάν επιλέξετε να χρησιμοποιήσετε αυτήν την επιλογή, σας συνιστούμε να χρησιμοποιήσετε και τις πιο λεπτομερείς επιλογές, για λόγους που αναφέρονται παραπάνω.
Χρησιμοποιώντας τη δέσμη ενεργειών παραπάνω, εδώ είναι η έξοδος που δημιουργείται με τη χρήση του rsync για την δημιουργία αντιγράφων ασφαλείας του καταλόγου Directory1 σε Directory2.Σημειώστε ότι χωρίς τον περιστροφικό διακόπτη, δεν θα λάβετε τέτοιες λεπτομερείς πληροφορίες.
Το παραπάνω στιγμιότυπο οθόνης μας λέει ότι τα αρχεία File1.txt και File2.jpg ανιχνεύτηκαν είτε ως νέα είτε άλλαξαν από τα αντίγραφα που υπήρχαν στον κατάλογο2 και έτσι δημιουργήθηκαν αντίγραφα ασφαλείας.Συμβουλή Noob: Παρατηρήστε ότι τα συρτάρια στο τέλος των καταλόγων στην εντολή μου rsync - αυτά είναι απαραίτητα, φροντίστε να τα θυμάστε.
Θα μεταβούμε σε μερικούς πιο εύχρηστους διακόπτες προς το τέλος αυτού του εκπαιδευτικού εγχειριδίου, αλλά απλά θυμηθείτε ότι για να δείτε μια πλήρη λίστα μπορείτε να πληκτρολογήσετε "man rsync" και να δείτε μια πλήρη λίστα διακοπτών που θα χρησιμοποιήσετε.
Αυτό το καλύπτει όσο αφορά τα τοπικά αντίγραφα ασφαλείας.Όπως μπορείτε να διαπιστώσετε, το rsync είναι πολύ εύκολο στη χρήση.Είναι λίγο πιο περίπλοκο όταν το χρησιμοποιείτε για συγχρονισμό δεδομένων με έναν εξωτερικό κεντρικό υπολογιστή μέσω του Διαδικτύου, αλλά θα σας δείξουμε έναν απλό, γρήγορο και ασφαλή τρόπο για να το κάνετε αυτό.
Χρήση του rsync για εξωτερικά αντίγραφα
Το rsync μπορεί να ρυθμιστεί με διάφορους τρόπους για εξωτερικά αντίγραφα ασφαλείας, αλλά θα εξετάσουμε την πιο πρακτική( επίσης ευκολότερη και ασφαλέστερη) μέθοδο σήραγγας rsync μέσω SSH.Οι περισσότεροι διακομιστές και ακόμη και πολλοί πελάτες έχουν ήδη SSH και μπορούν να χρησιμοποιηθούν για τα αντίγραφα ασφαλείας του rsync.Θα σας δείξουμε τη διαδικασία για να λάβετε ένα μηχάνημα Linux για δημιουργία αντιγράφων ασφαλείας σε άλλο σε τοπικό δίκτυο.Η διαδικασία θα ήταν ακριβώς η ίδια αν κάποιος οικοδεσπότης ήταν έξω στο διαδίκτυο κάπου, σημειώστε ότι η θύρα 22( ή όποια θύρα έχετε ρυθμίσει SSH) θα έπρεπε να προωθηθεί σε οποιοδήποτε εξοπλισμό δικτύου από την πλευρά του διακομιστή.
Στον διακομιστή( ο υπολογιστής που θα λάβει τα αντίγραφα ασφαλείας), βεβαιωθείτε ότι έχουν εγκατασταθεί τα SSH και rsync.
# yum -y εγκαθιστάτε ssh rsync
# sudo apt-get install ssh rsync
Εκτός από την εγκατάσταση SSH και rsync στο διακομιστή, το μόνο που χρειάζεται πραγματικά να κάνετε είναι να ρυθμίσετε τις αποθήκες στο διακομιστή όπου θα θέλατε τα αρχεία που υποστηρίζονταικαι βεβαιωθείτε ότι το SSH είναι κλειδωμένο.Βεβαιωθείτε ότι ο χρήστης που σκοπεύετε να χρησιμοποιήσετε διαθέτει έναν πολύπλοκο κωδικό πρόσβασης και μπορεί επίσης να είναι καλή ιδέα να αλλάξετε τη θύρα που ακούγεται από την SSH( προεπιλογή είναι 22).
Θα εκτελέσουμε την ίδια εντολή που κάναμε για τη χρήση του rsync σε έναν τοπικό υπολογιστή, αλλά θα συμπεριλάβουμε τις απαραίτητες προσθήκες για tunneling rsync μέσω SSH σε ένα διακομιστή στο τοπικό μου δίκτυο.Για το χρήστη "geek" που συνδέεται με το "192.168.235.137" και χρησιμοποιώντας τους ίδιους διακόπτες όπως παραπάνω( -av -delete) θα εκτελέσουμε τα εξής:
$ rsync -av -delete -e ssh /Directory1/ [email protected]: /Directory2/
Εάνέχετε ακρόαση SSH σε κάποια θύρα εκτός από 22, θα πρέπει να καθορίσετε τον αριθμό θύρας, όπως σε αυτό το παράδειγμα όπου χρησιμοποιώ τη θύρα 12345:
$ rsync -av -delete -e 'ssh -p 12345' /Directory1/ [email protected]: /Directory2/
Όπως μπορείτε να δείτε από το παραπάνω στιγμιότυπο οθόνης, η έξοδος που δίνεται όταν δημιουργείτε αντίγραφα ασφαλείας στο δίκτυο είναι σχεδόν η ίδια όπως όταν δημιουργείτε αντίγραφα ασφαλείας τοπικά, το μόνο που αλλάζει είναι η εντολή που χρησιμοποιείτε.Σημειώστε επίσης ότι προκάλεσε κωδικό πρόσβασης.Αυτό γίνεται για έλεγχο ταυτότητας με SSH.Μπορείτε να ρυθμίσετε τα κλειδιά RSA για να παρακάμψετε αυτή τη διαδικασία, η οποία επίσης θα απλοποιήσει την αυτοματοποίηση του rsync.
Αυτοματοποίηση των αντιγράφων rsync
Το Cron μπορεί να χρησιμοποιηθεί στο Linux για να αυτοματοποιήσει την εκτέλεση εντολών, όπως το rsync.Χρησιμοποιώντας το Cron, μπορούμε να έχουμε το δικό μας σύστημα Linux να τρέχει νυχτερινά αντίγραφα ασφαλείας ή, συχνά, θα θέλατε να τρέχουν.
Για να επεξεργαστείτε το αρχείο πίνακα cron για το χρήστη που έχετε συνδεθεί ως, εκτελέστε:
$ crontab -e
Θα χρειαστεί να είστε εξοικειωμένοι με το vi για να επεξεργαστείτε αυτό το αρχείο.Πληκτρολογήστε "I" για ένθεση και στη συνέχεια ξεκινήστε την επεξεργασία του αρχείου πίνακα cron.
Το Cron χρησιμοποιεί την ακόλουθη σύνταξη: λεπτό της ώρας, ώρα της ημέρας, ημέρα του μήνα, μήνα του έτους, ημέρα της εβδομάδας, εντολή.
Μπορεί να είναι λίγο συγκεχυμένη στην αρχή, οπότε επιτρέψτε μου να σας δώσω ένα παράδειγμα.Η ακόλουθη εντολή θα εκτελέσει την εντολή rsync κάθε βράδυ στις 10 μ.μ.:
0 22 * * * rsync -av - διαγραφή /Directory1/ /Directory2/
Το πρώτο "0" καθορίζει το λεπτό της ώρας και το "22" καθορίζει 10 PM.Δεδομένου ότι θέλουμε να τρέχει αυτή η εντολή καθημερινά, θα αφήσουμε τα υπόλοιπα πεδία με αστερίσκους και στη συνέχεια θα επικολλήσουμε την εντολή rsync.
Αφού ολοκληρώσετε τη διαμόρφωση του Cron, πατήστε escape και στη συνέχεια πληκτρολογήστε ": wq"( χωρίς τα εισαγωγικά) και πατήστε enter.Αυτό θα αποθηκεύσει τις αλλαγές σας στο vi.
Το Cron μπορεί να πάρει πολύ πιο σε βάθος από αυτό, αλλά για να συνεχίσουμε θα ήταν πέρα από το πεδίο αυτού του εκπαιδευτικού.Οι περισσότεροι άνθρωποι θέλουν απλώς ένα απλό εβδομαδιαίο ή ημερήσιο αντίγραφο ασφαλείας και αυτό που έχουμε δείξει μπορείτε να το ολοκληρώσετε εύκολα.Για περισσότερες πληροφορίες σχετικά με το Cron, ανατρέξτε στις σελίδες ανθρώπων.
Άλλα χρήσιμα χαρακτηριστικά
Ένα άλλο χρήσιμο πράγμα που μπορείτε να κάνετε είναι να βάλετε τα αντίγραφα ασφαλείας σας σε ένα αρχείο zip.Θα χρειαστεί να καθορίσετε πού θα θέλατε να τοποθετήσετε το αρχείο zip και, στη συνέχεια, να rsync αυτόν τον κατάλογο στον εφεδρικό κατάλογο.Για παράδειγμα:
$ zip /ZippedFiles/ archive.zip /Directory1/ &rsync -av - διαγραφή /ZippedFiles/ /Directory2/
Η παραπάνω εντολή παίρνει τα αρχεία από τον κατάλογο1, τα βάζει στο αρχείο /ZippedFiles/ archive.zip και στη συνέχεια rsyncs εκείνο τον κατάλογο στον κατάλογο2.Αρχικά, μπορεί να πιστεύετε ότι αυτή η μέθοδος θα αποδειχθεί αναποτελεσματική για μεγάλα αντίγραφα ασφαλείας, δεδομένου ότι το αρχείο zip θα αλλάξει κάθε φορά που γίνεται η παραμικρή αλλαγή σε ένα αρχείο.Ωστόσο, το rsync μεταφέρει μόνο τα αλλαγμένα δεδομένα, οπότε αν το αρχείο zip είναι 10 GB και κατόπιν προσθέσετε ένα αρχείο κειμένου στον κατάλογο1, το rsync θα ξέρει ότι αυτό είναι όλο που προσθέσατε( ακόμα και αν είναι σε zip) και μεταφέρετε μόνο τα λίγα kilobyteτων αλλαγμένων δεδομένων.
Υπάρχουν μερικοί διαφορετικοί τρόποι με τους οποίους μπορείτε να κρυπτογραφήσετε τα αντίγραφα ασφαλείας του rsync.Η ευκολότερη μέθοδος είναι να εγκαταστήσετε την κρυπτογράφηση στον σκληρό δίσκο( τον ίδιο με αυτόν με τον οποίο δημιουργούνται αντίγραφα ασφαλείας των αρχείων σας).Ένας άλλος τρόπος είναι να κρυπτογραφήσετε τα αρχεία σας πριν τα στείλετε σε έναν απομακρυσμένο διακομιστή( ή σε άλλο σκληρό δίσκο, ό, τι συμβαίνει να υποστηρίζετε).Θα καλύψουμε αυτές τις μεθόδους σε μεταγενέστερα άρθρα.
Όποια και αν είναι οι επιλογές και τα χαρακτηριστικά που επιλέγετε, το rsync αποδεικνύεται ένα από τα πιο αποδοτικά και ευέλικτα εργαλεία δημιουργίας αντιγράφων ασφαλείας μέχρι σήμερα και ακόμη και ένα απλό script rsync μπορεί να σας εξοικονομήσει από την απώλεια δεδομένων.