Πώς να εξαιρέσετε αρχεία από το Rsync
Το Rsync είναι ένα από τα πιο χρήσιμα βοηθητικά προγράμματα για έναν διαχειριστή διακομιστή, αλλά συγχρονίζει τα παντα από προεπιλογή, η οποία μπορεί να είναι ενοχλητική εάν η εφαρμογή σας δημιουργεί πολλά προσωρινά αρχεία. Δείτε πώς μπορείτε να αποκλείσετε τα αρχεία όταν χρησιμοποιείτε το rsync.
Αποκλείοντας από μια λίστα σε ένα αρχείο
Αυτή είναι η ιδανική μέθοδος για τον αποκλεισμό αρχείων και φακέλων, αφού μπορείτε πάντα να επεξεργαστείτε τη λίστα και να τροποποιήσετε τα στοιχεία εάν είναι απαραίτητο. Εδώ είναι η σύνταξη:
rsync --exclude-from = / path / to / excludion-file / path / to / source / path / to / dest
Το δύσκολο πράγμα με το rsync είναι ότι πρέπει να χρησιμοποιήσετε μια σχετική διαδρομή όταν προσπαθείτε να αποκλείσετε τα πράγματα, γιατί όταν προσπαθεί να ταιριάξει με τις εξαιρέσεις δεν θα χρησιμοποιήσει το πρώτο μέρος της διαδρομής για τον αγώνα ... είναι παράξενο.
Πείτε, για παράδειγμα, ότι προσπαθείτε να κάνετε backup / data / web / και να την στείλετε σε άλλο διακομιστή, ώστε να χρησιμοποιήσετε μια εντολή όπως rsync -a / data / web / user @ server: / backups / data / web συμβεί ... αλλά θα θέλατε να παρακάμψετε το συγχρονισμό του / data / web / cache / folder. Όταν ο rsync πηγαίνει να ελέγξει τη λίστα αποκλεισμού για κάθε στοιχείο που συγχρονίζει, δεν θα ελέγξει / data / web / cache / δεδομένου ότι η αρχική εντολή rsync βασίζεται στον / data / web / φάκελο. Θα ελέγξει απλώς τη "μνήμη cache /" στη λίστα. Έτσι θα πρέπει να βάλετε "cache" στη λίστα, όχι την πλήρη διαδρομή. Παράδειγμα:
rsync -a --exclude-από = / data / εξαιρέσεις / δεδομένα / web / / αντίγραφα ασφαλείας /
Τώρα, για να εξαιρέσουμε / data / web / cache και / data / web / temp από το rsync χρησιμοποιώντας αυτήν την εντολή, θα καταργούσαμε το / data / web / τμήμα της διαδρομής και το αρχείο /
cache * temp *
Θα σημειώσετε ότι έχω προσθέσει το * στη διαδρομή, για να βεβαιωθείτε ότι αντιστοιχεί σε οτιδήποτε αρχίζει με "cache" στην αρχή. Μπορείτε να χρησιμοποιήσετε αυτό το μοτίβο αστέρα για πιο χρήσιμους λόγους αν θέλετε - ας υποθέσουμε ότι θέλετε να εξαιρέσετε όλα τα αρχεία .txt από συγχρονισμό. Θα ξεκινήσετε το πρότυπο με το αστέρι για να βεβαιωθείτε ότι πάντα ταιριάζει και προσθέστε αυτό:
*.κείμενο
Αυτό θα εξασφάλιζε ότι οι τύποι των αρχείων παραβλέπονται κατά τη διάρκεια ενός συγχρονισμού. Είναι πολύ απλό πέρα από αυτό.
Εξαιρουμένου ενός Ενός Στοιχείου
Αυτή η τεχνική είναι πολύ λιγότερο χρήσιμη, αλλά μπορείτε να την χρησιμοποιήσετε εν πτήσει αν χρειαστεί. Αν ρυθμίζετε μια δέσμη ενεργειών για να χρησιμοποιήσετε το rsync, που συνήθως είστε, θα πρέπει να αφαιρέσετε από μια λίστα αρχείων το επιπλέον λεπτό για να διευκολύνετε τη μελλοντική συντήρηση. Η σύνταξη είναι πολύ παρόμοια:
rsync --exclude = σχετικό / path / to / exclude / source / dest
Η ίδια σχετική διαδρομή θα πρέπει να ισχύει εδώ ως ανωτέρω.