Android

Εντολή Dmesg στο linux

5 πραγματικές υποθέσεις που έγιναν επεισόδια στην 10η εντολή (Μέρος Α') - Blackbird

5 πραγματικές υποθέσεις που έγιναν επεισόδια στην 10η εντολή (Μέρος Α') - Blackbird

Πίνακας περιεχομένων:

Anonim

Ο πυρήνας του Linux είναι ο πυρήνας του λειτουργικού συστήματος που ελέγχει την πρόσβαση στους πόρους του συστήματος, όπως CPU, συσκευές εισόδου / εξόδου, φυσική μνήμη και συστήματα αρχείων. Ο πυρήνας γράφει διάφορα μηνύματα στο buffer του πυρήνα του πυρήνα κατά τη διάρκεια της διαδικασίας εκκίνησης και όταν εκτελείται το σύστημα. Αυτά τα μηνύματα περιλαμβάνουν διάφορες πληροφορίες σχετικά με τη λειτουργία του συστήματος.

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

Το βοηθητικό πρόγραμμα γραμμής εντολών dmesg χρησιμοποιείται για την εκτύπωση και τον έλεγχο του buffer του πυρήνα του πυρήνα στο Linux και σε άλλα λειτουργικά συστήματα που μοιάζουν με Unix. Είναι χρήσιμο για την εξέταση των μηνυμάτων εκκίνησης του πυρήνα και των ζητημάτων που σχετίζονται με το σφάλμα υλικού.

Σε αυτό το σεμινάριο, θα καλύψουμε τα βασικά της dmesg .

Χρησιμοποιώντας την εντολή dmesg

Η σύνταξη για την εντολή dmesg έχει ως εξής:

dmesg

Όταν καλείται χωρίς επιλογές, το dmesg γράφει όλα τα μηνύματα από το buffer του πυρήνα του πυρήνα στην τυπική έξοδο:

dmesg

Από προεπιλογή, όλοι οι χρήστες μπορούν να εκτελέσουν την εντολή dmesg . Ωστόσο, σε ορισμένα συστήματα, η πρόσβαση στο dmesg μπορεί να περιοριστεί για μη χρήστες root. Σε αυτήν την περίπτωση, κατά την κλήση του dmesg θα λάβετε ένα μήνυμα σφάλματος όπως παρακάτω:

dmesg: read kernel buffer failed: Operation not permitted

Η παράμετρος kernel.dmesg_restrict πυρήνα καθορίζει αν οι μη προνομιούχοι χρήστες μπορούν να χρησιμοποιήσουν το dmesg για να προβάλλουν μηνύματα από την προσωρινή μνήμη του πυρήνα του πυρήνα. Για να καταργήσετε τους περιορισμούς, ορίστε το στο μηδέν:

sudo sysctl -w kernel.dmesg_restrict=0

Συνήθως, η έξοδος περιέχει πολλές γραμμές πληροφοριών, επομένως μόνο το τελευταίο τμήμα της παραγωγής είναι ορατό. Για να δείτε μια σελίδα κάθε φορά, μεταφέρετε την έξοδο σε ένα βοηθητικό πρόγραμμα pager, όπως less ή more :

dmesg --color=always | less

Το --color=always χρησιμοποιείται --color=always για τη διατήρηση της έγχρωμης παραγωγής.

dmesg | grep -i usb

dmesg διαβάζει τα μηνύματα που παράγονται από τον πυρήνα από το εικονικό αρχείο /proc/kmsg . Αυτό το αρχείο παρέχει μια διεπαφή στο buffer του πυρήνα του πυρήνα και μπορεί να ανοίξει μόνο με μία διαδικασία. Εάν η διαδικασία syslog εκτελείται στο σύστημά σας και προσπαθείτε να διαβάσετε το αρχείο με cat ή less , η εντολή θα κολλήσει.

Ο daemon syslog χωρίζει τα μηνύματα του πυρήνα στο /var/log/dmesg , ώστε να μπορείτε επίσης να χρησιμοποιήσετε αυτό το αρχείο καταγραφής:

cat /var/log/dmesg

Σχηματισμός εξόδου dmesg

Η εντολή dmesg παρέχει διάφορες επιλογές που σας βοηθούν να διαμορφώσετε και να φιλτράρετε την έξοδο.

Μία από τις πιο χρησιμοποιούμενες επιλογές του dmesg είναι -H (- --human ), που επιτρέπει την αναγνώσιμη από τον άνθρωπο έξοδο. Αυτή η επιλογή διοχετεύει την έξοδο της εντολής σε έναν τηλεειδοποιητή:

dmesg -H

Για να εκτυπώσετε χρονικά σήματα αναγνώσιμα από άνθρωπο, χρησιμοποιήστε την επιλογή -T (- --ctime ):

dmesg -T

IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready

Η μορφή της χρονικής σήμανσης μπορεί επίσης να οριστεί χρησιμοποιώντας τη --time-format επιλογή, η οποία μπορεί να είναι ctime, reltime, delta, notime, ή iso. Για παράδειγμα, για να χρησιμοποιήσετε τη μορφή delta θα πληκτρολογήσετε:

dmesg --time-format=delta

Μπορείτε επίσης να συνδυάσετε δύο ή περισσότερες επιλογές:

dmesg -H -T

Για να παρακολουθήσετε την έξοδο της dmesg σε πραγματικό χρόνο, χρησιμοποιήστε την επιλογή -w ( --follow ):

dmesg --follow

Φιλτράρισμα dmesg Έξοδος

Μπορείτε να περιορίσετε την έξοδο dmesg σε συγκεκριμένες εγκαταστάσεις και επίπεδα.

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

  • kern - μηνύματα του πυρήνα user - μηνύματα σε επίπεδο χρήστη mail - daemon συστήματος αλληλογραφίας - daemons συστήματος auth - μηνύματα ασφαλείας / εξουσιοδότησης syslog - εσωτερικά μηνύματα syslogd lpr - υποσύστημα εκτυπωτή γραμμής news - υποσύστημα news δικτύου

Το -f (- --facility ) σας επιτρέπει να περιορίσετε την απόδοση σε συγκεκριμένες εγκαταστάσεις. Η επιλογή δέχεται μία ή περισσότερες εγκαταστάσεις που χωρίζονται με κόμματα.

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

dmesg -f kern, daemon

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

  • emerg σύστημα είναι άχρηστο alert - πρέπει να ληφθούν άμεσα μέτρα crit - κρίσιμες συνθήκες err - warn συνθήκες warn - προειδοποιητικές προειδοποιητικές συνθήκες - κανονικές αλλά σημαντικές info κατάστασης - ενημερωτικό err - μηνύματα σε επίπεδο debug σφαλμάτων

Το -l (- επίπεδο ) περιορίζει την έξοδο σε καθορισμένα επίπεδα. Η επιλογή δέχεται ένα ή περισσότερα επίπεδα διαχωρισμένα με κόμμα.

Η ακόλουθη εντολή εμφανίζει μόνο τα σφάλματα και τα κρίσιμα μηνύματα:

dmesg -l err, crit

Διαγραφή του Ρυθμιστικού Δακτυλιδιού

Η επιλογή -C ( --clear ) σάς επιτρέπει να καθαρίσετε το buffer του δακτυλίου:

sudo dmesg -C

Μόνο οι ρίζες ή οι χρήστες με δικαιώματα sudo μπορούν να διαγράψουν το buffer.

Για να εκτυπώσετε τα περιεχόμενα του buffer πριν την εκκαθάριση, χρησιμοποιήστε την επιλογή -c ( --read-clear ):

sudo dmesg -c

dmesg > dmesg_messages

συμπέρασμα

Η εντολή dmesg σάς επιτρέπει να προβάλλετε και να ελέγχετε το buffer του πυρήνα του πυρήνα. Μπορεί να είναι πολύ χρήσιμο όταν αντιμετωπίζετε προβλήματα με τον πυρήνα ή το υλικό.

Πληκτρολογήστε man dmesg στο τερματικό σας για πληροφορίες σχετικά με όλες τις διαθέσιμες επιλογές dmesg .

dmsg τερματικό πυρήνα