Cách sử dụng lệnh dmesg trong Linux

Một dịp hiếm hoi nào đó các máy chủ trung tâm dữ liệu Linux hoạt động không như bình thường. Tại sao ư? Bởi vì đơn giản là không có gì hoàn hảo và khi một máy tính được kết nối với mạng, người dùng không bao giờ biết chắc khi nào sự cố sẽ xảy ra. Rất tiếc không thể ngăn cản những sự cố đó xảy ra. Nhưng tin vui là có các công cụ cần thiết để giải quyết vấn đề.

Đối với hầu hết các service (Apache, MySQL, v.v.), việc có các log riêng lẻ có thể hữu ích trong việc kết nối, xác thực, bảo mật và nhiều vấn đề khác. Nhưng điều gì xảy ra khi hệ thống cần xem xét là chính nền tảng máy chủ? Khi có vấn đề về phần cứng, bạn sẽ kiểm tra file log nào?

Điều đầu tiên mà mọi người tìm kiếm là một lệnh đặc biệt cung cấp hàng loạt thông tin về các driver thiết bị khác nhau, được load trong quá trình boot. Thông tin được trình bày thông qua lệnh này có thể giúp người dùng hiểu những gì đang xảy ra với hệ thống Linux của mình. Đó là lệnh dmesg. Công cụ này đã được sử dụng để khắc phục sự cố máy chủ và máy tính để bàn Linux trong nhiều thập kỷ qua. Đã đến lúc bạn bắt đầu sử dụng lệnh tiện dụng này! Hãy xem nó hoạt động như thế nào qua bài viết sau đây nhé!

Cài đặt

Thật may mắn. dmesg là một trong những lệnh được tìm thấy trên mọi bản phân phối Linux, vì vậy không có gì cần cài đặt ở đây cả. Chỉ cần mở một cửa sổ terminal và bắt đầu sử dụng công cụ hữu ích này.

Cách sử dụng lệnh dmesg

Từ dấu nhắc bash, hãy đưa ra lệnh dmesg. Người dùng sẽ thấy rất nhiều thông tin hữu ích. Trong thực tế, có rất nhiều thông tin mà người dùng không biết chúng có ý nghĩa gì. Vậy làm thế nào để tận dụng lợi ích của dmesg? Có một vài cách khác nhau. Cách đầu tiên là làm đầu ra của dmesg trở nên ít hoặc nhiều, như sau:

dmesg | less

Chạy dmesg theo cách này cho phép người dùng bỏ qua những thông tin không cần thiết.

Cách sử dụng

Tuy nhiên, ngay cả việc sử dụng dmesg theo cách này cũng không tối ưu vì vẫn còn hàng tấn thông tin khác cần sàng lọc. May mắn thay, dmesg có một vài tùy chọn cho phép người dùng tiếp tục gói gọn lại các thông tin đó. Người dùng có thể giới hạn đầu ra chỉ gồm các lỗi và cảnh báo, để không phải sàng lọc mọi thứ xảy ra ngay trong hệ thống của mình. Làm thế nào để thực hiện điều này? Hãy tận dụng “sự trợ giúp” từ các cấp độ của flag. Có 8 cấp độ có thể được xem, mỗi cấp độ có thể được kết hợp để tạo ra một lần lặp cụ thể từ đầu ra của lệnh dmesg. Các cấp độ là:

  • emerg - Hệ thống không sử dụng được
  • alert - Hành động phải được thực hiện ngay lập tức
  • crit - Điều kiện quan trọng
  • err - Tình trạng lỗi
  • warn - Tình trạng cảnh báo
  • notice - Tình trạng bình thường nhưng có ý nghĩa
  • info - Thông tin
  • debug - Thông báo mức gỡ lỗi

Giả sử bạn chỉ muốn xem các cảnh báo quan trọng. Hãy nhập lệnh sau:

dmesg --level=alert,crit

Hy vọng sau khi chạy lệnh trên, bạn sẽ không thấy đầu ra nào. Nếu không thấy gì, và bạn biết chắc là có vấn đề, hãy giảm mức độ xuống mức các lỗi và cảnh báo:

dmesg --level=err,warn

Sau đây là các thông tin có thể sử dụng.

Thông tin có thể sử dụng

Timestamp

Lệnh dmesg có một thủ thuật tiện dụng khác. Điều gì xảy ra nếu người dùng muốn biết chính xác thời gian xảy ra lỗi hoặc cảnh báo? May mắn thay, bạn có thể thêm tùy chọn -T để có được thông tin này:

dmesg --level=err,warn -T

Bây giờ người dùng đã có timestamp liên quan đến từng mục.

Timestamp

Nếu thấy vẫn còn quá nhiều thông tin, hãy giảm đầu ra của lệnh trên xuống mức ít hơn và người dùng có thể lướt qua phần đầu ra một cách dễ dàng. Nếu không có thời gian để đọc qua tất cả đầu ra tại thời điểm cụ thể nào đó, hãy chuyển nó sang một file để đọc sau:

dmesg --level=err,warn -T > dmesg_output

Sau đó, bạn có thể xem đầu ra trong file đó bất cứ lúc nào.

Chắc chắn sau khi đọc bài viết này, bạn đọc sẽ muốn có lệnh dmesg trong bộ công cụ quản trị trung tâm dữ liệu của mình. Với công cụ dễ sử dụng này, bạn có thể bắt đầu khắc phục sự cố máy chủ của mình trên phạm vi rộng và sau đó bắt đầu thu hẹp phạm vi tìm kiếm.

Chúc bạn thành công!

Xem thêm:

Thứ Ba, 29/01/2019 17:46
51 👨 245