Làm thế nào để kiểm tra nhật ký hệ thống trong Bash trên Linux?


86

Trong C, chúng tôi đăng nhập theo cách này:

syslog( LOG_INFO, "proxying %s", url );

Trong Linux, chúng ta có thể kiểm tra nhật ký bằng cách nào?


Chức năng không syslog ghi vào nhật ký hệ thống? (Trừ khi bạn đang nói về cấp thấp hơn để truy cập bộ đệm vòng thông báo hạt nhân, nhưng tôi nghi ngờ urllà một int.)
Cascabel

2
Q này nên được chuyển sang unix.SE.com, không chắc nó có đáng để gắn cờ để mod chú ý hay không (tôi đã gắn cờ).
Alexander Malakhov

Câu trả lời:


128

Làm thế nào về less /var/log/syslog?


1
@kern: Bạn đang sử dụng phiên bản và bản phân phối linux nào?
NPE

6
@kern: Kiểm tra nội dung của bạn/etc/syslog.conf
NPE

25
tail -f /var/log/syslogthực sự rất hay vì nó hiển thị kết quả đầu ra gần đây nhất khi nó đi vào nhật ký hệ thống. Nó có thể hữu ích nếu bạn đang cố gắng khắc phục sự cố một điều gì đó đang phát trực tiếp, thay vì xem xét điều gì đó nghiêm trọng trong quá khứ.
counterbeing

17
nó thực sự /etc/rsyslog.conf cho CentOS
La Mã Goyenko

1
@ArunprasadRajkumar Một cách khác sẽ được thông điệp tránh khai thác gỗ có nghĩa là để được đọc bởi người dùng bình thường để syslog
Dmitry Grigoryev

41

Trên Fedora 19, có vẻ như câu trả lời là /var/log/messages. Mặc dù hãy kiểm tra /etc/rsyslog.confxem nó đã được thay đổi chưa.


Tôi đã kiểm tra nó trên openSUSE và nhận thấy nó cũng áp dụng cho nó. Cám ơn vì đã chia sẻ!
silvioprog

23

Theo mặc định, nó được đăng nhập vào nhật ký hệ thống tại /var/log/syslog, vì vậy nó có thể được đọc bằng cách:

tail -f /var/log/syslog

Nếu tệp không tồn tại, hãy kiểm tra /etc/syslog.confđể xem tệp cấu hình cho syslogd. Lưu ý rằng tệp cấu hình có thể khác, vì vậy hãy kiểm tra quá trình đang chạy nếu nó đang sử dụng tệp khác:

# ps wuax | grep syslog
root      /sbin/syslogd -f /etc/syslog-knoppix.conf

Lưu ý: Trong một số bản phân phối (chẳng hạn như Knoppix), tất cả các tin nhắn đã ghi có thể được gửi đến thiết bị đầu cuối khác (ví dụ /dev/tty12), vì vậy để truy cập, ví dụ: tty12hãy thử nhấn Control+ Alt+ F12.

Bạn cũng có thể sử dụng lsofcông cụ để tìm ra tệp nhật ký mà syslogdquá trình đang sử dụng, ví dụ:

sudo lsof -p $(pgrep syslog) | grep log$ 

Để gửi thông báo thử nghiệm tới syslogd trong shell, bạn có thể thử:

echo test | logger

Để khắc phục sự cố, hãy sử dụng công cụ theo dõi ( stracetrên Linux, dtrusstrên Unix), ví dụ:

sudo strace -fp $(cat /var/run/syslogd.pid)

22

Một công dụng rất thú vị là journalctl.

Ví dụ, để hiển thị nhật ký hệ thống cho bảng điều khiển:, journalctl -t <syslog-ident>đâu <syslog-ident>là danh tính bạn đã cấp cho chức năng openlogkhởi tạo nhật ký hệ thống.


14

tail -f /var/log/syslog | grep process_name đâu process_namelà tên của quá trình mà chúng tôi quan tâm


2

Nếu bạn thích Vim, nó có tích hợp đánh dấu cú pháp cho tệp nhật ký hệ thống, ví dụ: nó sẽ đánh dấu các thông báo lỗi bằng màu đỏ.

vi +'syntax on' /var/log/syslog

-10

trên bộ định tuyến Asus, nó có thể được thực hiện thông qua

:/bin# busybox

cũng có các lệnh khác liên quan đến.


Điều này hoàn toàn lạc đề, vui lòng xóa nó khỏi câu trả lời.
Jackie Yeh
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.