Chỉ xem các mục mới trong một tệp nhật ký đang phát triển


20
tail -f x.log

Tôi sử dụng lệnh này để xem tệp nhật ký đang phát triển trong dấu nhắc lệnh.

Tôi chỉ quan tâm đến việc xem các dòng nhật ký được ghi vào tệp sau khi chạy tail -fvà không quan tâm đến các nhật ký được ghi vào tệp trước khi thực hiện tail -f. Nhưng tail -flệnh khi bắt đầu, lấy 10 dòng cuối cùng và hiển thị nó.

Điều này làm tôi bối rối, đôi khi những bản ghi này được tạo mới (hoặc) chúng là bản ghi cũ?

Vì vậy, làm thế nào tôi có thể tùy chỉnh đuôi -f để chỉ xuất các mục mới?

logs  tail 

Câu trả lời:


31

Bạn co thể thử:

tail -n0 -f x.log

Từ trang nam :

-n, --lines = K
xuất K dòng cuối cùng, thay vì 10 dòng cuối cùng; hoặc sử dụng -n + K để xuất các dòng bắt đầu bằng Kth


12

Bạn có thể sử dụng -n0tùy chọn để hiển thị 0 dòng. Vì thế

tail -n0 -f some.log

2

Bạn cũng có thể sử dụng lesslệnh như

  1. less file_name.log (tệp nhật ký sẽ được mở và sẽ hiển thị trang đầu tiên của tệp nhật ký)
  2. nhấn shift+ f(để hành động giống như đuôi -f)
  3. Trong trường hợp nếu bạn cần tìm kiếm bất kỳ từ khóa nào trong tệp nhật ký. nhấn ctrl+ cđể thoát chế độ đuôi và tìm kiếm từ khóa dưới dạng /từ khóa và ?từ khóa.

Điều này không chỉ xem các mục mới trong một tệp nhật ký đang phát triển.
Ma quái

0

Tôi đã tạo ra cách tiếp cận này khi tôi phải theo dõi các mục bên trong container docker:

LOG_COUNT=0
LOGS=/var/logs/your_logs

function HEART_BEAT() {
    LOG_COUNT_NEW=$(wc -l $LOGS | awk '{ print $1 }')
    tail -n $(( $LOG_COUNT_NEW - $LOG_COUNT )) $LOGS
    LOG_COUNT=$LOG_COUNT_NEW
}

Hi vọng điêu nay co ich!

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.