Câu trả lời:
Ah, có một lá cờ cho điều này.
thay vì sử dụng tail -f /var/log/file
chúng ta nên sử dụngtail -F /var/log/file
tail -F
dịch sang tail --follow=name --retry
như trong;
--follow=name
: theo tên của tệp thay vì mô tả tệp--retry
: nếu tệp không thể truy cập được, hãy thử lại sau thay vì chết# tail --follow=mylog.log
Từ người đàn ông đuôi :
With --follow (-f), tail defaults to following the file descriptor,
which means that even if a tail’ed file is renamed, tail will continue
to track its end. This default behavior is not desirable when you
really want to track the actual name of the file, not the file descrip‐
tor (e.g., log rotation). Use --follow=name in that case. That causes
tail to track the named file by reopening it periodically to see if it
has been removed and recreated by some other program.
Vì vậy, trong trường hợp này sử dụng -F
tùy chọn sẽ là chính xác.
-F same as --follow=name --retry
Câu trả lời chính xác phụ thuộc vào hệ điều hành của bạn - nhưng trong nhiều trường hợp, tail -F
sẽ làm đúng.
IMHO, thật kỳ quặc khi thay đổi tệp nhật ký của bạn theo SIZE thay vì theo ngày. Hầu hết các nhật ký hệ thống (trong unix hoặc linux) xoay vòng hàng tuần hoặc hàng tháng và không dựa trên kích thước ... Đây là điều tôi thích vì nhiều lý do, và cũng là điều mà nếu được thực hiện sẽ giải quyết vấn đề của bạn.
Tám năm sau, tôi không biết tôi đang nói cái quái gì ở đây: có rất nhiều nơi bạn muốn xoay theo kích cỡ, bởi vì luân chuyển hàng ngày / hàng tuần / hàng tháng có thể gây ra các tệp MASSIVE có thể gây ra các vấn đề nghiêm trọng.
Từ góc độ có nhiều kinh nghiệm hơn, câu hỏi thực sự là tại sao bạn muốn ngồi và liên tục theo dõi một tệp phát triển nhanh đến mức bạn xoay nó nhiều hơn hàng ngày ... Nó giống như xem luồng Ma trận.
Ngày nay, bạn nên xem xét một số tập hợp nhật ký dữ liệu lớn như Splunk hoặc Sumologic, nơi nó có thể lọc các sự kiện nhật ký thành các lớp và kích hoạt dựa trên các giá trị nhật ký cụ thể ... Không cần phải xem nhật ký trực tiếp.
Ngoài ra, nó có thể là một nhiệm vụ quá nặng nề cho mục đích của bạn, nhưng splunk có một tính năng đuôi để làm chính xác những gì bạn muốn. Nó miễn phí lên tới 500 MB / ngày, nhưng nếu dữ liệu của bạn vượt quá kích thước đó thì sẽ không đáng giá.