Các khái niệm về bộ đệm vòng kernel kernel, các cấp độ người dùng, các cấp độ nhật ký của người dùng là gì?


35

Tôi thường thấy các từ "bộ đệm vòng nhân", "cấp độ người dùng", "cấp độ nhật ký" và một số từ khác xuất hiện cùng nhau. ví dụ

/ var / log / dmesg Chứa thông tin bộ đệm vòng kernel.

/var/log/kern.log Chỉ chứa các thông điệp của kernel của bất kỳ loglevel nào

/var/log/user.log Chứa thông tin về tất cả nhật ký cấp độ người dùng

Có phải tất cả họ về nhật ký? Chúng liên quan và khác nhau như thế nào?

Theo "cấp độ", tôi sẽ tưởng tượng một hệ thống phân cấp của nhiều cấp độ?

"Cấp độ người dùng" có liên quan đến "không gian người dùng" không?

Chúng có liên quan đến runlevel hoặc vòng bảo vệ theo một cách nào đó?

Câu trả lời:


41

Vâng, tất cả điều này có liên quan đến đăng nhập. Không, không ai trong số đó phải làm với runlevel hoặc "vòng bảo vệ".

Nhân giữ các bản ghi của nó trong một bộ đệm vòng. Lý do chính cho việc này là để các bản ghi từ khởi động hệ thống được lưu cho đến khi trình nền syslog có cơ hội khởi động và thu thập chúng. Nếu không, sẽ không có bản ghi của bất kỳ nhật ký nào trước khi khởi động trình nền syslog. Nội dung của bộ đệm vòng đó có thể được nhìn thấy bất cứ lúc nào bằng cách sử dụng dmesglệnh và nội dung của nó cũng được lưu vào /var/log/dmesggiống như trình nền syslog đang khởi động.

Tất cả các bản ghi không đến từ kernel được gửi khi chúng được tạo ra daemon syslog để chúng không được giữ trong bất kỳ bộ đệm nào. Các bản ghi kernel cũng được chọn bởi trình nền syslog khi chúng được tạo nhưng chúng cũng tiếp tục được lưu (không cần thiết, có thể tranh cãi) vào bộ đệm vòng.

Các mức độ nhật ký có thể được nhìn thấy trong tài liệu syslog (3) và như sau:

  • LOG_EMERG : hệ thống không sử dụng được
  • LOG_ALERT : hành động phải được thực hiện ngay lập tức
  • LOG_CRIT : điều kiện quan trọng
  • LOG_ERR : điều kiện lỗi
  • LOG_WARNING : điều kiện cảnh báo
  • LOG_NOTICE : điều kiện bình thường, nhưng quan trọng
  • LOG_INFO : tin nhắn thông tin
  • LOG_DEBUG : thông báo mức gỡ lỗi

Mỗi cấp độ được thiết kế để ít "quan trọng" hơn cấp độ trước. Một tệp nhật ký ghi lại các bản ghi ở một cấp độ cũng sẽ ghi lại các bản ghi ở tất cả các cấp quan trọng hơn.

Sự khác biệt giữa /var/log/kern.log/var/log/mail.log(ví dụ) không liên quan đến cấp độ mà với cơ sở hoặc danh mục. Các danh mục cũng được ghi lại trên trang.


Cảm ơn. (1) "Cấp độ người dùng" có liên quan đến "không gian người dùng" không? (2) Từ những gì bạn nói, /var/log/kern.log/var/log/dmesgnên có cùng nội dung với các thông điệp kernel? Nhưng nội dung của chúng không giống nhau.
Tim

"Cấp độ người dùng" không phải là một điều, theo như tôi biết. Có cấp độ nhật ký hệ thống, là mức độ "quan trọng" của thông báo nhật ký hệ thống (tôi đã liệt kê các cấp độ) và nó không liên quan gì đến không gian người dùng so với không gian kernel. /var/log/kern.lognên chứa dmesgnội dung (có thể được định dạng khác nhau) từ thời gian khởi động. Trừ khi đã được một thời gian dài kể từ khi khởi động và những nội dung đó đã được xoay ra.
Celada

Câu hỏi thứ hai của tôi là: Trong khi dmesgin ra các giá trị hiện tại của bộ đệm vòng kernel, các giá trị quá khứ / cũ của bộ đệm được lưu trữ trong /var/log/dmesg. Vì vậy, dmesgđầu ra chỉ là một tập hợp con gần đây của /var/log/dmesgnội dung, và chúng khác nhau. Sau đó, nội dung của /var/log/dmesg(không dmesgnhư trong bình luận của bạn) và /var/log/kernel.loggiống nhau?
Tim

Phụ thuộc khi nào! Ngay sau khi khởi động, /var/log/dmesgnội dung có thể sẽ gần hết /var/log/kern.log. Càng về sau, nó sẽ không ở đó, nó sẽ bị trục xuất. Nói chung, /var/log/kern.logsẽ chứa các nhật ký cũ hơn bất kỳ ảnh chụp nhanh nào của bộ đệm vòng nhật ký của hạt nhân và cả các nhật ký mới hơn ảnh chụp nhanh.
Celada


17

Để trả lời ít nhất phần đầu tiên của câu hỏi của bạn về dmesg:

/var/log/dmesg lưu trữ nội dung của 'bộ đệm vòng nhân', bộ đệm bộ nhớ được tạo bởi kernel khi khởi động để lưu trữ dữ liệu nhật ký mà nó tạo ra ngay khi bạn vượt qua giai đoạn bộ nạp khởi động.

Bộ đệm vòng là một loại bộ đệm đặc biệt luôn có kích thước không đổi, loại bỏ các tin nhắn cũ nhất khi có tin nhắn mới. Văn bản được lưu trong bộ đệm vòng kernel là thứ bạn thấy nhấp nháy trên màn hình khi bạn khởi động Unix lần đầu tiên giống như máy ở chế độ console (không có màn hình giật gân, Plymouth). Nhật ký nhân được lưu trữ trong bộ nhớ đệm để nhật ký khởi động có ở đâu đó, cho đến khi hệ thống tự khởi động đến điểm mà syslogtrình nền có thể tiếp quản.

dmesgtrong Linux là một phần của util-linuxgói công cụ bảo trì hệ thống được xuất bản bởi kernel.org. Theo dmesg(1)trang nam,

dmesg được sử dụng để kiểm tra hoặc kiểm soát bộ đệm vòng kernel.

Xem: http://www.computerhope.com/unix/dmesg.htm

Trong init systemd 'init, lệnh này có thể được sử dụng để in bộ đệm vòng kernel :
# journalctl --dmesg or journalctl -k, thxs để sửa @don_crissti

Việc ban hành lệnh dmesg | grep -i ethernet chẳng hạn, sẽ phân tích bộ đệm vòng nhân cho chuỗi 'ethernet'.

Tôi hy vọng điều này sẽ giúp ít nhất với phần đầu tiên của yêu cầu của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.