Δύο διακομιστές, ένα VPN, ένας κατάλογος που πρέπει να υπάρχει και στα δύο μέρη και μια εντολή που είναι εύκολο να εκτελεστεί και δύσκολο να αναιρεθεί. Πριν την πληκτρολογήσετε, αποφασίστε ποιο αντίγραφο είναι έγκυρο, γιατί κάθε επόμενη ερώτηση για το rsync εξαρτάται από αυτή την απάντηση. Ένα μονόδρομο αντίγραφο, ένας κοινόχρηστος φάκελος εργασίας και ένα αρχείο με εκδόσεις απαιτούν διαφορετικούς κανόνες για αλλαγές και διαγραφές. Η σήραγγα παρέχει τη διαδρομή και δεν έχει γνώμη για κανένα από αυτά.

Αποφασίστε ποιο αντίγραφο κερδίζει πριν πληκτρολογήσετε εντολή

Γράψτε την κατεύθυνση σε μία πρόταση, μαζί με το όνομα κεντρικού υπολογιστή και τη διαδρομή σε κάθε πλευρά, και πάρτε έγκριση από όποιον κατέχει τα δεδομένα. Σε αυτή την παρουσίαση η πηγή είναι /srv/publish/ και ο προορισμός είναι ένας λογαριασμός στο fileserver.example που επιτρέπεται να γράφει μόνο στο /srv/mirror/.

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

Δείτε προεπισκόπηση του αντιγράφου και διαβάστε την αναλυτική λίστα

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

rsync -rt --dry-run --itemize-changes -e ssh -- /srv/publish/ [email protected]:/srv/mirror/

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

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

Μετά αποφασίστε αν ταξιδεύουν οι διαγραφές

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

rsync -rt --delete --dry-run --itemize-changes -e ssh -- /srv/publish/ [email protected]:/srv/mirror/

Οι διαγραφές αφαιρούν περιττά αρχεία στην πλευρά υποδοχής εντός του συγχρονισμένου εύρους, γι' αυτό μια λανθασμένη διαδρομή πηγής, ένας κατάλογος που δεν έχει προσαρτηθεί ή ένα φίλτρο που αποκλείει περισσότερα από όσα προβλέπονταν μπορούν να κάνουν μια καταστροφική εκτέλεση να φαίνεται καθαρός καθρέφτης. Η λίστα προεπισκόπησης είναι το μόνο σημείο όπου αυτή η διαφορά γίνεται ορατή πριν γίνει ακριβή. Κρατήστε ανεξάρτητο αντίγραφο ανάκτησης όπου τα δεδομένα το δικαιολογούν, και θυμηθείτε ότι ένας καθρέφτης αναπαράγει πιστά μια τυχαία διαγραφή αντί να διατηρεί ιστορικό.

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

Δύο μονόδρομες εργασίες δεν κάνουν διπλής κατεύθυνσης συγχρονισμό

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

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

Αυτοματοποιήστε μόνο αφού γραφτεί η πολιτική

Μια προγραμματισμένη εργασία πρέπει να φέρει την κατεύθυνση, τις διαδρομές, την πολιτική μεταδεδομένων και την εγκεκριμένη απόφαση διαγραφής. Βάλτε αυτά τα πέντε γεγονότα στο ίδιο το αρχείο εργασίας, όχι σε μια σελίδα wiki που ο επόμενος διαχειριστής μπορεί να μη διαβάσει ποτέ. Αποτρέψτε επικαλυπτόμενες εκτελέσεις, γιατί δύο αντίγραφα που γράφουν το ίδιο δέντρο ταυτόχρονα παράγουν μια κατάσταση που κανένα από τα δύο δεν σκόπευε.

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

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

Σχετικά άρθρα