Το logrotate είναι ένα εργαλείο γραμμής εντολών του Linux για τη διαχείριση των εγγραφών καταγραφής. Αυτό το εργαλείο βοηθά στην εκτέλεση διαφορετικών τύπων εργασιών σε καταχωρίσεις καταγραφής από τον διαχειριστή, όπως ο περιορισμός των περιστρεφόμενων αρχείων καταγραφής, η συμπίεση των περιστρεφόμενων αρχείων καταγραφής, η διαγραφή των περιττών αρχείων καταγραφής, η εκτέλεση του συγκεκριμένου σεναρίου φλοιού με βάση τα αρχεία καταγραφής κ.λπ. Οι χρήσεις της εντολής 'logorate' για τη διαχείριση των αρχείων καταγραφής με διαφορετικούς τρόπους εμφανίζονται σε αυτό το σεμινάριο χρησιμοποιώντας πολλά παραδείγματα.
Ελέγξτε την εγκατεστημένη έκδοση Logrotate
Η εντολή «logrotate» είναι εγκατεστημένη από προεπιλογή στη νέα έκδοση του λειτουργικού συστήματος Ubuntu. Εκτελέστε την ακόλουθη εντολή για να ελέγξετε την εγκατεστημένη έκδοση της εντολής 'logrotate':
$ logrotate --εκδοχή
Οι εγγραφές αρχείου καταγραφής των διαφορετικών εφαρμογών αποθηκεύονται στο φάκελο '/var/log' από προεπιλογή. Το παρακάτω παρόμοιο περιεχόμενο θα εμφανιστεί εάν ελέγξετε το περιεχόμενο του φακέλου.
$ ls / ήταν / κούτσουρο
Ορίστε τη διαμόρφωση 'Logrotate'.
Ρύθμιση τιμής | Σκοπός |
καθημερινά/εβδομαδιαία/μηνιαία/ετησίως | Καθορίζει τη χρονική διάρκεια για την περιστροφή των αρχείων καταγραφής. |
περιστρέψτε τον αριθμό | Καθορίζει τον αριθμό των αρχείων που θα διατηρηθούν πριν αφαιρέσετε τα παλιά αρχεία καταγραφής. |
συμπιέζω | Χρησιμοποιείται για τη συμπίεση των αρχείων καταγραφής. |
συμπίεσηcmd | Χρησιμοποιείται για να ορίσετε την εντολή «συμπίεση». Το gzip είναι η προεπιλεγμένη εντολή. |
αποσυμπίεσηcmd | Χρησιμοποιείται για να ορίσετε την εντολή 'αποσυμπίεση'. Το gunzip είναι η προεπιλεγμένη εντολή. |
καθυστερημένη συμπίεση | Χρησιμοποιείται για την καθυστέρηση της διαδικασίας συμπίεσης των αρχείων καταγραφής. |
η ειδοποίηση είναι άδεια | Χρησιμοποιείται για να μην περιστρέφεται το κενό αρχείο. |
μου λείπει | Εάν έχει οριστεί, δεν δημιουργείται σφάλμα για τα αρχεία καταγραφής που λείπουν. |
Μέγεθος | Χρησιμοποιείται για να ορίσετε το όριο για την έναρξη της περιστροφής των αρχείων καταγραφής. |
κείμενο ημερομηνίας | Χρησιμοποιείται για την προσθήκη μιας τιμής ημερομηνίας ως επίθημα του περιστρεφόμενου αρχείου. |
copytuncate | Χρησιμοποιείται για τη δημιουργία αντιγράφου του αρχικού αρχείου. |
προπεριστρεφόμενο | Χρησιμοποιείται για την εκτέλεση ενός σεναρίου πριν από την περιστροφή των αρχείων καταγραφής. |
μεταστροφή | Χρησιμοποιείται για την εκτέλεση ενός σεναρίου μετά την περιστροφή των αρχείων καταγραφής. |
δημιουργώ | Χρησιμοποιείται για τη δημιουργία αρχείων καταγραφής με δικαιώματα root. |
Σύνταξη:
Η σύνταξη της εντολής 'logrotate' δίνεται ως εξής:
logrotate [ ΕΠΙΛΟΓΗ ] config_file_path
Διαφορετικοί τύποι επιλογών μπορούν να χρησιμοποιηθούν για διαφορετικούς σκοπούς με την εντολή 'logrotate'.
Επιλογές Logrotate
Μερικές χρήσιμες επιλογές της εντολής «logrotate» αναφέρονται παρακάτω:
-f, –δύναμη | Χρησιμοποιείται για να κάνει την περιστροφή με δύναμη όταν απαιτείται. |
-d, –debug | Χρησιμοποιείται για την ενεργοποίηση της λειτουργίας εντοπισμού σφαλμάτων κατά τη διάρκεια της περιστροφής. |
-m, –mail <εντολή> | Χρησιμοποιείται για την αποστολή email κατά τη διάρκεια της εναλλαγής. |
-s, –state |
Χρησιμοποιείται για εναλλακτικά αρχεία κατάστασης. |
-χρήση | Χρησιμοποιείται για την εκτύπωση των πληροφοριών χρήσης. |
-?, -βοήθεια | Χρησιμοποιείται για την εκτύπωση των βοηθητικών μηνυμάτων. |
-v, –περιεκτικός | Χρησιμοποιείται για εκτύπωση σε αναλυτική λειτουργία. |
Logrotate Configuration File
Το κύριο αρχείο διαμόρφωσης logrotate βρίσκεται στη θέση '/etc/logrotate.conf'. Εκτελέστε την ακόλουθη εντολή για να ανοίξετε το αρχείο στον nano editor:
$ νανο / και τα λοιπά / logrotate.confΗ προεπιλεγμένη ρύθμιση της εντολής 'logrotate' εμφανίζεται στο αρχείο 'logrotate.conf'. Η οδηγία 'include' χρησιμοποιείται στο αρχείο για την ανάκτηση της διαμόρφωσης που βρίσκεται στον κατάλογο '/etc/logrotate.d'.
Παράδειγμα 1: Δημιουργήστε ένα απλό αρχείο διαμόρφωσης Logrotate
Δημιουργήστε ένα δείγμα αρχείου καταγραφής με το όνομα '/var/log/test.log' με τα δείγματα δεδομένων καταγραφής. Εκτελέστε την ακόλουθη εντολή για να ανοίξετε το nano editor για να δημιουργήσετε ένα νέο αρχείο 'logrotate.conf' στη θέση του φακέλου '/etc/tmp'. Δημιουργήστε το φάκελο '/tmp' με δικαιώματα root εάν δεν έχει δημιουργηθεί πριν.
$ νανο / και τα λοιπά / tmp / logrotate.confΠροσθέστε το ακόλουθο περιεχόμενο στο αρχείο για το αρχείο '/var/log/test.log'. Σύμφωνα με τη ρύθμιση, το αρχείο 'test.log' θα εναλλάσσεται καθημερινά εάν το μέγεθος του αρχείου υπερβαίνει τα 5K:
/ ήταν / κούτσουρο / δοκιμή.log {καθημερινά
Μέγεθος 5Κ
του ρίζα adm
}
Εκτελέστε την ακόλουθη εντολή για να ελέγξετε το μέγεθος του αρχείου καταγραφής:
$ ls -μεγάλο / ήταν / κούτσουρο / δοκιμή.logΕκτελέστε την εντολή 'logrotate' αφού δημιουργήσετε το αρχείο διαμόρφωσης.
$ sudo logrotate / και τα λοιπά / tmp / logrotate.confΕκτελέστε ξανά την ακόλουθη εντολή για να ελέγξετε το μέγεθος του αρχείου καταγραφής μετά την εκτέλεση της εντολής 'logrotate':
$ ls -μεγάλο / ήταν / κούτσουρο / δοκιμή.logΤο μέγεθος του αρχείου 'test.log' είναι 1K+. Έτσι, δεν γίνεται καμία περιστροφή με βάση τη ρύθμιση διαμόρφωσης.
Αλλάξτε την τιμή μεγέθους σε 1K στο αρχείο “/etc/tmp/logrotate.conf” και εκτελέστε ξανά την εντολή “ls” για να ελέγξετε το μέγεθος αρχείου του “/var/log/test.log”. Σύμφωνα με την έξοδο, το αρχείο καταγραφής περιστρέφεται και διαγράφεται επειδή έχει ξεπεραστεί το όριο μεγέθους.
Παράδειγμα 2: Χρήση Logrotate Copytruncate
Δημιουργήστε ή τροποποιήστε το αρχείο '/etc/tmp/logrotate.conf' με τις ακόλουθες ρυθμίσεις για να εμφανιστεί η χρήση του copytruncate. Σύμφωνα με τις νέες ρυθμίσεις, το logrotate δημιουργεί ένα αντίγραφο του αρχικού αρχείου μηδενίζοντας το μέγεθος του αρχικού αρχείου.
/ ήταν / κούτσουρο / δοκιμή.log {γυρίζω 5
Μέγεθος 1 κ
copytuncate
του ρίζα adm
}
Εκτελέστε την ακόλουθη εντολή για να ελέγξετε το μέγεθος του αρχείου 'test.log':
$ ls -μεγάλο / ήταν / κούτσουρο / δοκιμή.logΕκτελέστε την εντολή 'logrotate' αφού δημιουργήσετε το αρχείο διαμόρφωσης.
$ sudo logrotate / και τα λοιπά / tmp / logrotate.confΕκτελέστε ξανά την ακόλουθη εντολή για να ελέγξετε το μέγεθος του αρχείου 'test.log' αφού εκτελέσετε την εντολή 'logrotate':
$ ls -μεγάλο / ήταν / κούτσουρο / δοκιμή.logΤο αρχικό μέγεθος αρχείου γίνεται 0 μετά την εκτέλεση της εντολής 'logrotate' για τη ρύθμιση copytruncate.
Παράδειγμα 3: Χρήση Συμπίεσης Logrotate
Δημιουργήστε ή τροποποιήστε το αρχείο '/etc/tmp/logrotate.conf' με τις ακόλουθες ρυθμίσεις για να εμφανίσετε τη χρήση της συμπίεσης. Σύμφωνα με τις νέες ρυθμίσεις, το logrotate δημιουργεί ένα αρχείο συμπίεσης του αρχικού αρχείου.
/ ήταν / κούτσουρο / δοκιμή.log {γυρίζω 5
Μέγεθος 1 κ
συμπιέζω
δημιουργώ 770 ρίζα adm
}
Εκτελέστε την ακόλουθη εντολή για να ελέγξετε τη λίστα των αρχείων και των φακέλων του '/var/log':
$ ls / ήταν / κούτσουρο /Εκτελέστε την εντολή 'logrotate' αφού δημιουργήσετε το αρχείο διαμόρφωσης.
$ sudo logrotate / και τα λοιπά / tmp / logrotate.confΕκτελέστε ξανά την ακόλουθη εντολή για να ελέγξετε τη λίστα με τα αρχεία και τους φακέλους του '/var/log':
$ ls / ήταν / κούτσουρο /Το συμπιεσμένο αρχείο του αρχείου 'test.log' δημιουργείται με το όνομα 'test.log.1.gz' και το αρχικό αρχείο αφαιρείται.
Παράδειγμα 4: Χρήση Logrotate Dateext
Δημιουργήστε ή τροποποιήστε το αρχείο '/etc/tmp/logrotate.conf' με τις ακόλουθες ρυθμίσεις για να εμφανιστεί η χρήση του κειμένου ημερομηνίας. Σύμφωνα με τις νέες ρυθμίσεις, το logrotate δημιουργεί ένα αρχείο συμπίεσης του αρχικού αρχείου με την τιμή ημερομηνίας.
ήταν / κούτσουρο / δοκιμή.log {του ρίζα adm
γυρίζω 5
Μέγεθος 1 κ
συμπιέζω
δημιουργώ 770 ρίζα adm
κείμενο ημερομηνίας
}
Εκτελέστε την εντολή 'logrotate' αφού δημιουργήσετε το αρχείο διαμόρφωσης.
$ sudo logrotate / και τα λοιπά / tmp / logrotate.confΕκτελέστε την ακόλουθη εντολή για να ελέγξετε τη λίστα των αρχείων και των φακέλων του '/var/log':
$ ls -μεγάλο / ήταν / κούτσουρο /Το συμπιεσμένο αρχείο του αρχείου 'test.log' δημιουργείται με το όνομα 'test.log.20240129.gz' και το αρχικό αρχείο αφαιρείται.
Παράδειγμα 5: Χρήση του Logrotate Maxage
Δημιουργήστε ή τροποποιήστε το αρχείο '/etc/tmp/logrotate.conf' με τις ακόλουθες ρυθμίσεις για να εμφανιστεί η χρήση του maxage. Σύμφωνα με τις ρυθμίσεις, το logrotate διατηρεί πέντε καταχωρήσεις καταγραφής εάν το μέγεθος του αρχείου καταγραφής υπερβαίνει το 1K μετά από μία ημέρα.
/ ήταν / κούτσουρο / δοκιμή.log {του ρίζα adm
γυρίζω 5
Μέγεθος 1 κ
συμπιέζω
maxage 1
}
Εκτελέστε την ακόλουθη εντολή 'logrotate' για να αποθηκεύσετε την έξοδο σε ένα άλλο αρχείο καταγραφής που ονομάζεται 'out.log':
$ sudo logrotate -μικρό = / ήταν / κούτσουρο / έξω.συνδεθείτε / και τα λοιπά / tmp / logrotate.confΣύμφωνα με την ακόλουθη έξοδο, το αρχείο «out.log» δημιουργείται μετά την εκτέλεση της εντολής «logrotate»:
Παράδειγμα 6: Χρήση Logrotate Missingok
Δημιουργήστε ή τροποποιήστε το αρχείο '/etc/tmp/logrotate.conf' με τις ακόλουθες ρυθμίσεις. Εδώ, το αρχείο καταγραφής 'testfile.log' δεν υπάρχει στο φάκελο '/var/log'.
/ ήταν / κούτσουρο / testfile.log {του ρίζα adm
γυρίζω 5
Μέγεθος 1 κ
συμπιέζω
}
Εκτυπώνεται ένα μήνυμα σφάλματος μετά την εκτέλεση της εντολής «logrotate».
Προσθέστε τη ρύθμιση 'missingok' στο αρχείο διαμόρφωσης logrotate και εκτελέστε ξανά την εντολή 'logrotate'. Δεν εκτυπώνεται σφάλμα για το αρχείο καταγραφής που λείπει.
Παράδειγμα 7: Χρήση Logrotate Prerotate
Δημιουργήστε ένα αρχείο Bash με το όνομα 'test.sh' με το ακόλουθο σενάριο που εκτυπώνει ένα απλό μήνυμα. Το αρχείο χρησιμοποιείται σε αυτό το παράδειγμα logrotate για να δείξει τη χρήση του prerotate στο αρχείο διαμόρφωσης logrotate.
δοκιμή.sh#!/bin/bash
ηχώ 'logrotate παραδείγματα...'
Αφού δημιουργήσετε το αρχείο, εκτελέστε την ακόλουθη εντολή για να ορίσετε την άδεια εκτέλεσης αυτού του αρχείου για όλους τους χρήστες:
$ chmod α+χ / Σπίτι / κατανόηση / τεστ.shΤώρα, δημιουργήστε ή τροποποιήστε το αρχείο '/etc/tmp/logrotate.conf' με τις ακόλουθες ρυθμίσεις. Σύμφωνα με τις ρυθμίσεις, το logrotate διατηρεί πέντε εγγραφές καταγραφής εάν το μέγεθος του αρχείου καταγραφής υπερβαίνει το 1K και το αρχείο 'test.sh' εκτελείται πριν από την περιστροφή.
/ ήταν / κούτσουρο / δοκιμή.log {του ρίζα adm
γυρίζω 5
Μέγεθος 1 κ
προπεριστρεφόμενο
/ Σπίτι / κατανόηση / τεστ.sh
κατάληξη
}
Η έξοδος του αρχείου «test.sh» εμφανίζεται μετά την εκτέλεση της εντολής «logrotate»:
συμπέρασμα
Οι διάφορες χρήσεις της εντολής 'logrotate' παρουσιάζονται σε αυτό το σεμινάριο χρησιμοποιώντας πολλά παραδείγματα που θα βοηθήσουν τον χρήστη Linux να γνωρίζει τις χρήσεις της εντολής και να διαχειρίζεται σωστά τα αρχεία καταγραφής.