Trường hợp Linux đặt các thông điệp khởi động?


38

Tôi muốn tìm nơi Linux viết tất cả các thông báo khởi động. Bạn biết:

facility one    [STARTED]
facility two    [STARTED]
facility three  [FAILED]

Tôi đã tìm kiếm với

find . -print0 | xargs -0 grep -i "words from boot messages"

trong / var / log /, nhưng không tìm thấy gì.

Tôi có CentOS 5.5.
Ví dụ lúc khởi động tôi có: "Xác định thông tin IP cho eth0 ... không thành công; không có liên kết nào. Kiểm tra cáp?"
Tôi không quan tâm đến lỗi cụ thể, nhưng tôi không thể tìm thấy bất kỳ nhật ký nào có lỗi này.

dmesg | grep "no link present" trả lại không có gì quá.


1
Bạn đã chạy findlệnh với quyền root? findsẽ in tất cả các tệp bạn có thể liệt kê, nhưng grepchỉ có thể kiểm tra các tệp bạn có thể đọc và một số tệp nhật ký có thể được sở hữu bởi quyền đọc thông tin gốc cho người dùng khác. Ngoài ra, ít nhất GNU grep hỗ trợ -ltùy chọn thứ để in tên của các tệp có khớp thay vì các dòng trùng khớp. Điều này có thể rất hữu ích khi tìm kiếm các tệp có chứa văn bản nhất định. Vì vậy, hãy thử su -c 'find /var/log -print0 | xargs -0 grep -l -i "words from boot messages"'hoặcsudo find /varlog -print0 | xargs -0 sudo grep -l -i "words from boot messages"
mschilli

Ngày nay với systemd ở đây là câu trả lời.
Pablo A

Câu trả lời:


24

Hầu hết các thông báo khởi động được đặt trong một bộ đệm, mà bạn có thể truy cập bằng cách sử dụng lệnh dmesg. Trên hầu hết các bản phân phối Linux, đầu ra đó cũng được lưu trữ trong

/var/log/dmesg.log

Mà bạn có thể xem với

tail -n 100 /var/log/dmesg.log

1
Ví dụ: tôi đã có lúc khởi động: "Xác định thông tin IP cho eth0 ... không thành công; không có liên kết nào Kiểm tra cáp?" Tôi không quan tâm đến lỗi cụ thể này, nhưng khi tôi làm: dmesg | grep "không có liên kết hiện tại" Tôi không nhận được gì ... Thực ra tôi nhận được RẤT NHIỀU dòng với grep "eth0", nhưng không có lỗi cụ thể. Vậy có cách nào để tìm mô tả lỗi khởi động cụ thể hay không? (Cảm ơn bạn đã trả lời điểm)
Rodnower

Hãy thử sử dụng lệnh Nano's ^ w (whereis), về cơ bản là lệnh Tìm. Hoặc grepvới một regrec thư giãn. Nếu bạn thực sự lo lắng về đầu ra của một lệnh cụ thể, bạn có thể truy cập vào init.dtệp của nó và thay đổi ghi nhật ký STDOUT hoặc STDERR của lệnh vi phạm.
Mat Carlson

Không có /var/log/dmesg.logtrên Lubfox 18.04
Marco Sulla

17

Mỗi mục đặc biệt trong khi khởi động được đặt trong /var/log/syslogCũng có thể trong/var/log/boot.msg


Tôi có CentOS 5.5 và tôi không có syslog trong / var / log /
Rodnower

boot.log (thường là boot.log (x) trong đó x là số nguyên dương hoặc không có gì) trống.
Rodnower

1
Hãy thử / var / log / message
pjc50

1
/var/log/boot.msg là phiên bản chính xác trên linux mint
MaxV

cũng có thể chứa các mục không đặc biệt.
Abdull 15/03/2016

8

Giải pháp này chắc chắn hoạt động trên các hệ thống Debian, nhưng dù sao cũng có thể hữu ích.

Để lưu trữ tất cả các tin nhắn được hiển thị trong quá trình khởi động, bạn phải bắt đầu một dịch vụ được gọi bootlogd, sau lần khởi động lại tiếp theo, bạn có thể đọc các tin nhắn trong đó /var/log/boot.


Khi tôi bị khò khè, tôi nhận đượcroot@wheezy:/home/jrx# service bootlogd start bootlogd: unrecognized service
Jérôme Radix

4
@ JérômeRadix có lẽ bạn nên cài đặt nó trước?
Behrooz

2

Nhập dmesg> ~ / dmesg.log để sao chép tất cả các thông báo khởi động vào bản sao của riêng bạn. Bạn có thể thêm ngày và giờ nếu bạn muốn giữ nhiều bản sao và thậm chí bạn có thể tự động hóa nó trong tập lệnh đăng nhập.

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.