27Jun

Πώς να εξαιρέσετε αρχεία από το Rsync

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

Εξαίρεση από μια λίστα σε ένα αρχείο

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

rsync --exclude-from = /path/to/ αρχείο εξαίρεσης /path/to/ πηγή /path/to/ dest

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

Πείτε, για παράδειγμα, ότι προσπαθείτε να δημιουργήσετε αντίγραφο /data/web/ και να το στείλετε σε άλλο διακομιστή, ώστε να χρησιμοποιήσετε μια εντολή όπως rsync -a /data/web/ user @ server: /backups/data/web/ για να συμβεί αυτό. .. αλλά θα θέλατε πραγματικά να παρακάμψετε το συγχρονισμό του /data/web/cache/ντοσιέ.Όταν το rsync πηγαίνει να ελέγξει τη λίστα εξαίρεσης για κάθε στοιχείο που συγχρονίζει, δεν θα ελέγξει το /data/web/cache/ αφού η αρχική εντολή rsync βασίζεται στον φάκελο /data/web/.Θα ελέγξει απλώς τη "μνήμη cache /" στη λίστα.Έτσι θα χρειαστεί να βάλετε "cache" στη λίστα, όχι την πλήρη διαδρομή.Παράδειγμα:

rsync -a --exclude-from = /data/ εξαιρέσεις /data/web/ /backups/

Τώρα για να αποκλείσετε την προσωρινή μνήμη /data/web/ και /data/web/ temp από το rsync χρησιμοποιώντας αυτήν την εντολή, θα καταργούσαμε το τμήμα /data/web/ της διαδρομής και το αρχείο εξαιρέσεων /data/ απλά θα περιέχει αυτό:

cache * temp *

Θα σημειώσετε ότι έχω προσθέσει το * στη διαδρομή, για να βεβαιωθείτε ότι αντιστοιχεί σε οτιδήποτε αρχίζει με "cache" στην αρχή.Μπορείτε να χρησιμοποιήσετε αυτό το μοτίβο αστέρα για πιο χρήσιμους λόγους αν θέλετε - ας υποθέσουμε ότι θέλετε να εξαιρέσετε όλα τα αρχεία. txt από συγχρονισμό.Θα ξεκινήσατε το μοτίβο με το αστέρι για να βεβαιωθείτε ότι πάντα ταιριάζει και προσθέστε αυτό:

*. txt

Αυτό θα εξασφάλιζε ότι αυτοί οι τύποι αρχείων παραλείπονται κατά τη διάρκεια ενός συγχρονισμού.Είναι πολύ απλό πέρα ​​από αυτό.

Εξαιρουμένου ενός Ενιαίου Αντικειμένου

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

rsync --exclude = σχετική εξαίρεση /path/to/ / source / dest

Η ίδια σχετική διαδρομή θα πρέπει να ισχύει εδώ ως ανωτέρω.