Android

Lệnh Dmesg trong linux

04 dmesg

04 dmesg

Mục lục:

Anonim

Nhân Linux là lõi của hệ điều hành kiểm soát truy cập vào tài nguyên hệ thống, chẳng hạn như CPU, thiết bị I / O, bộ nhớ vật lý và hệ thống tệp. Kernel ghi các thông điệp khác nhau vào bộ đệm vòng kernel trong quá trình khởi động và khi hệ thống đang chạy. Những thông báo này bao gồm nhiều thông tin khác nhau về hoạt động của hệ thống.

Bộ đệm vòng kernel là một phần của bộ nhớ vật lý chứa các thông điệp nhật ký của kernel. Nó có kích thước cố định, có nghĩa là một khi bộ đệm đầy, các bản ghi nhật ký cũ hơn sẽ bị ghi đè.

Tiện ích dòng lệnh dmesg được sử dụng để in và điều khiển bộ đệm vòng nhân trong Linux và các hệ điều hành tương tự Unix khác. Nó rất hữu ích để kiểm tra các thông điệp khởi động kernel và gỡ lỗi các vấn đề liên quan đến phần cứng.

Trong hướng dẫn này, chúng tôi sẽ đề cập đến những điều cơ bản của lệnh dmesg .

Sử dụng lệnh dmesg

Cú pháp của lệnh dmesg như sau:

dmesg

Khi được gọi mà không có bất kỳ tùy chọn nào, dmesg ghi tất cả các thông báo từ bộ đệm vòng kernel vào đầu ra tiêu chuẩn:

dmesg

Theo mặc định, tất cả người dùng có thể chạy lệnh dmesg . Tuy nhiên, trên một số hệ thống, quyền truy cập vào dmesg có thể bị hạn chế đối với người dùng không phải root. Trong tình huống này, khi gọi dmesg bạn sẽ nhận được thông báo lỗi như dưới đây:

dmesg: read kernel buffer failed: Operation not permitted

Tham số kernel kernel.dmesg_restrict chỉ định xem người dùng không có đặc quyền có thể sử dụng dmesg để xem tin nhắn từ bộ đệm nhật ký của kernel hay không. Để loại bỏ các hạn chế, đặt nó về 0:

sudo sysctl -w kernel.dmesg_restrict=0

Thông thường, đầu ra chứa rất nhiều dòng thông tin, vì vậy chỉ có thể xem được phần cuối của đầu ra. Để xem một trang tại một thời điểm, hãy chuyển đầu ra sang tiện ích máy nhắn tin, chẳng hạn như less hoặc more :

dmesg --color=always | less

--color=always được sử dụng để duy trì đầu ra màu.

dmesg | grep -i usb

dmesg đọc các tin nhắn được tạo bởi kernel từ tệp ảo /proc/kmsg . Tệp này cung cấp giao diện cho bộ đệm vòng nhân và chỉ có thể được mở bằng một quy trình. Nếu quá trình syslog đang chạy trên hệ thống của bạn và bạn cố đọc tệp bằng cat hoặc less , lệnh sẽ bị treo.

Trình nền syslog các thông điệp kernel thành /var/log/dmesg , vì vậy bạn cũng có thể sử dụng tệp nhật ký đó:

cat /var/log/dmesg

Hình thành đầu ra dmesg

Lệnh dmesg cung cấp một số tùy chọn giúp bạn định dạng và lọc đầu ra.

Một trong những lựa chọn được sử dụng nhiều nhất của dmesg -H ( --human ), cho phép đầu ra có thể đọc được của con người. Tùy chọn này dẫn đầu ra lệnh vào máy nhắn tin:

dmesg -H

Để in dấu thời gian có thể đọc được của con người, hãy sử dụng tùy chọn -T ( --ctime ):

dmesg -T

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

Định dạng dấu thời gian cũng có thể được đặt bằng --time-format tùy chọn, có thể là ctime, reltime, delta, notime hoặc iso. Ví dụ: để sử dụng định dạng delta bạn sẽ gõ:

dmesg --time-format=delta

Bạn cũng có thể kết hợp hai hoặc nhiều tùy chọn:

dmesg -H -T

Để xem đầu ra của lệnh dmesg trong thời gian thực, hãy sử dụng tùy chọn -w ( --follow ):

dmesg --follow

Lọc đầu ra dmesg

Bạn có thể giới hạn đầu ra dmesg cho các cơ sở và cấp độ nhất định.

Các cơ sở đại diện cho quá trình tạo ra thông điệp. dmesg hỗ trợ các phương tiện đăng nhập sau:

  • kern - tin nhắn kernel user - tin nhắn cấp người dùng mail - daemon hệ thống mail - daemons auth - tin nhắn bảo mật / ủy quyền syslog - tin nhắn syslogd nội bộ lpr - news hệ thống con máy in dòng - hệ thống news mạng

Các -f (- --facility ) tùy chọn cho phép bạn giới hạn đầu ra cho các cơ sở cụ thể. Tùy chọn chấp nhận một hoặc nhiều tiện ích được phân tách bằng dấu phẩy.

Ví dụ: để chỉ hiển thị các thông báo nhân và hệ thống trình nền bạn sẽ sử dụng:

dmesg -f kern, daemon

Mỗi thông điệp tường trình được liên kết với một mức độ nhật ký cho thấy tầm quan trọng của thông điệp. dmesg hỗ trợ các cấp độ nhật ký sau:

  • emerg - hệ thống là alert không thể sử dụng - phải thực hiện ngay lập tức crit - điều kiện quan trọng lỗi - điều kiện lỗi warn - notice điều kiện cảnh notice - thông info điều kiện bình thường nhưng quan trọng - thông báo debug - thông báo mức gỡ lỗi

Các -l ( --level ) tùy chọn giới hạn đầu ra ở mức xác định. Tùy chọn chấp nhận một hoặc nhiều mức được phân tách bằng dấu phẩy.

Lệnh sau chỉ hiển thị lỗi và thông báo quan trọng:

dmesg -l err, crit

Xóa bộ đệm vòng

Tùy chọn -C ( --clear ) cho phép bạn xóa bộ đệm vòng:

sudo dmesg -C

Chỉ người dùng root hoặc người dùng có quyền sudo mới có thể xóa bộ đệm.

Để in nội dung bộ đệm trước khi xóa, sử dụng tùy chọn -c ( --read-clear ):

sudo dmesg -c

dmesg > dmesg_messages

Phần kết luận

Lệnh dmesg cho phép bạn xem và điều khiển bộ đệm vòng kernel. Nó có thể rất hữu ích khi xử lý sự cố hạt nhân hoặc phần cứng.

man dmesg trong thiết bị đầu cuối của bạn để biết thông tin về tất cả các tùy chọn dmesg có sẵn.

thiết bị đầu cuối hạt nhân dmesg