Πώς να χρησιμοποιήσετε την εντολή tail στο Linux

Η εντολή ουράς Linux εμφανίζει δεδομένα από το τέλος ενός αρχείου. Μπορεί ακόμη και να εμφανίζει ενημερώσεις που προστίθενται σε ένα αρχείο σε πραγματικό χρόνο. Σας δείχνουμε πώς να το χρησιμοποιήσετε.

Μήπως το systemd Kill tail;

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

Πολλές σύγχρονες διανομές Linux έχουν υιοθετήσει το systemd system and service manager. Αυτή είναι η πρώτη διαδικασία που εκτελείται, έχει ID 1 διαδικασίας, και είναι ο γονέας όλων των άλλων διεργασιών. Αυτός ο ρόλος ήταν παλιά χειρίζονται οι παλαιότεροι σύστημα έναρξης.

Μαζί με αυτήν την αλλαγή ήρθε μια νέα μορφή για τα αρχεία καταγραφής συστήματος. Δεν δημιουργούνται πλέον σε απλό κείμενο, στο systemd καταγράφονται σε δυαδική μορφή. Προς το διαβάστε αυτά τα αρχεία καταγραφής, πρέπει να χρησιμοποιήσετε το βοηθητικό πρόγραμμα journactl. Η εντολή tail λειτουργεί με μορφές απλού κειμένου. Δεν διαβάζει δυαδικά αρχεία. Αυτό σημαίνει λοιπόν ότι η εντολή tail είναι μια λύση για την αναζήτηση ενός προβλήματος; Έχει ακόμα κάτι να προσφέρει;

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

  Πώς να εγκαταστήσετε τον ισοσταθμιστή ήχου PulseEffects στο Linux

Χρησιμοποιώντας την ουρά

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

tail word-list.txt

Για να δείτε διαφορετικό αριθμό γραμμών, χρησιμοποιήστε την επιλογή -n (αριθμός γραμμών):

tail -n 15 word-list.txt

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

tail -12 word-list.txt

Χρήση ουράς με πολλά αρχεία

Μπορείτε να κάνετε tail work με πολλά αρχεία ταυτόχρονα. Απλώς περάστε τα ονόματα αρχείων στη γραμμή εντολών:

tail -n 4 list-1.txt list-2.txt list-3.txt

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

Εμφάνιση γραμμών από την αρχή ενός αρχείου

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

tail +440 list-1.txt

Μπορείς σελίδα μέσα στο κείμενο με ελεγχόμενο τρόπο.

Επειδή τυχαίνει να υπάρχουν 20.445 γραμμές σε αυτό το αρχείο, αυτή η εντολή είναι ισοδύναμη με τη χρήση της επιλογής “-6”:

tail +20440 list-1.txt

Χρήση Bytes με ουρά

Μπορείτε να πείτε στην ουρά να χρησιμοποιεί μετατοπίσεις σε byte αντί για γραμμές χρησιμοποιώντας την επιλογή -c (bytes). Αυτό θα μπορούσε να είναι χρήσιμο εάν έχετε ένα αρχείο κειμένου που έχει μορφοποιηθεί σε εγγραφές κανονικού μεγέθους. Σημειώστε ότι ένας χαρακτήρας νέας γραμμής μετράει ως ένα byte. Αυτή η εντολή θα εμφανίσει τα τελευταία 93 byte στο αρχείο:

tail -c 93 list-2.txt

Μπορείτε να συνδυάσετε την επιλογή -c (bytes) με τον τροποποιητή + (μέτρηση από την αρχή του αρχείου) και να καθορίσετε μια μετατόπιση σε byte που μετράται από την αρχή του αρχείου:

tail -c +351053 list-e.txt

Σωληνώσεις στην ουρά

Νωρίτερα, διοχετεύαμε την έξοδο από την ουρά σε λιγότερο . Μπορούμε επίσης να διοχετεύσουμε την έξοδο από άλλες εντολές στην ουρά.

  Πώς να ενεργοποιήσετε το Zswap σε Linux για καλύτερη απόδοση

Για να προσδιορίσετε τα πέντε αρχεία ή φακέλους με τους παλαιότερους χρόνους τροποποίησης, χρησιμοποιήστε την επιλογή -t (ταξινόμηση κατά χρόνο τροποποίησης) με το ls και διοχετεύστε την έξοδο στην ουρά.

ls -tl | tail -5

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

head -n 200 list-1.txt | tail -10

Αυτή η εντολή παραθέτει τις πέντε διεργασίες που απαιτούν περισσότερη μνήμη.

ps aux | sort -nk +4 | tail -5

Ας το αναλύσουμε.

Η εντολή ps εμφανίζει πληροφορίες σχετικά με τις διεργασίες που εκτελούνται. Οι επιλογές που χρησιμοποιούνται είναι:

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

Η εντολή ταξινόμησης ταξινομεί την έξοδο από το ps. Οι επιλογές που χρησιμοποιούμε για την ταξινόμηση είναι:

n: Ταξινόμηση αριθμητικά.
k +4: Ταξινόμηση στην τέταρτη στήλη.

Η εντολή tail -5 εμφανίζει τις τελευταίες πέντε διεργασίες από την ταξινομημένη έξοδο. Αυτές είναι οι πέντε διαδικασίες που απαιτούν περισσότερη μνήμη.

  5 καλύτερες εναλλακτικές λύσεις VirtualBox στο Linux

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

Η παρακολούθηση νέων καταχωρήσεων κειμένου που φτάνουν σε ένα αρχείο—συνήθως ένα αρχείο καταγραφής—είναι εύκολη με την ουρά. Περάστε το όνομα αρχείου στη γραμμή εντολών και χρησιμοποιήστε την επιλογή -f (ακολουθώ).

tail -f geek-1.log

Καθώς κάθε νέα καταχώρηση αρχείου καταγραφής προστίθεται στο αρχείο καταγραφής, η ουρά ενημερώνει την εμφάνισή της στο παράθυρο τερματικού.

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

tail -f geek-1.log | grep average

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

tail -f -n 5 geek-1.log geek-2.log

Κάθε καταχώρηση επισημαίνεται με μια κεφαλίδα που δείχνει από ποιο αρχείο προήλθε το κείμενο.

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

tail -f -s 5 geek-1.log

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

Όταν ακολουθείτε τις προσθήκες κειμένου σε περισσότερα από ένα αρχεία, μπορείτε να αποκρύψετε τις κεφαλίδες που υποδεικνύουν από ποιο αρχείο καταγραφής προέρχεται το κείμενο. Χρησιμοποιήστε την επιλογή -q (αθόρυβη) για να το κάνετε αυτό:

tail -f -q geek-1.log geek-2.log

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

Η ουρά έχει ακόμα αξία

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

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