Logrotate: cách truy cập tệp đầu ra trong postrotate


15

Tôi xoay Nginxnhật ký hàng ngày (với dateext). Sau khi xoay vòng, tôi muốn phân tích tệp cho ngày vừa qua và biên dịch một email với số lỗi được trả về bởi máy chủ Nginx.

Làm cách nào tôi có thể truy cập tệp đầu ra trong phần postrotate / endcript của logrotate?


Bạn có thể giải thích nhiều hơn?
Khaled

Làm xong. Xin lỗi, tôi nghĩ rằng nó đủ rõ ràng. :)
ibz

Câu trả lời:


4

Tôi không biết bất kỳ biến nào bạn có thể sử dụng nếu đó là những gì bạn đang tìm kiếm. Tuy nhiên, ngay sau khi xoay nhật ký, bạn nên biết chính xác tên mà tệp đã được xoay để dựa trên cấu hình bạn đã đặt cho xoay ( /var/log/somefile.1hoặc tương tự).

Có lẽ sẽ dễ trả lời hơn nếu bạn mô tả vấn đề thực tế mà bạn đang cố gắng giải quyết?


Tôi nghĩ rằng vấn đề là không liên quan. Giải thích nó chi tiết hơn bây giờ. Vâng, tôi chỉ có thể sử dụng ngày để lấy tên tệp, nhưng tôi đã hy vọng tôi có thể lấy nó thông qua một số biến hoặc một cái gì đó, sẽ có ý nghĩa hơn.
ibz

3
Có vẻ như larsks đã đánh vào chính xác những gì bạn muốn. $ 1 là biến bạn đang tìm kiếm.
đánh dấu

17

Nếu bạn không sử dụng chỉ thị "sharedscripts", thì tập lệnh postrotate của bạn nhận được, là $ 1, tệp đã kích hoạt vòng quay nhật ký. Điều này có thể hữu ích nếu bạn đang cố gắng sử dụng một tập lệnh chung với nhiều khổ thơ logrotate. Đó là, đưa ra một cái gì đó như thế này:

/var/log/sample1.log /var/log/sample[23].log {
  ..config...
}

Nếu bất kỳ tệp phù hợp nào cần được xoay, tập lệnh của bạn sẽ được gọi với $ 1 được đặt thành "/var/log/sample1.log", "/var/log/sample2.log" hoặc "/var/log/sample3.log "Khi thích hợp. Sau đó, bạn có thể nối ".1" để tìm tệp vừa được xoay.

Nếu bạn sử dụng tùy chọn "sharedscripts", thì tập lệnh của bạn sẽ được gọi với $ 1 được đặt thành "/var/log/sample1.log /var/log/sample[23[.log" (sẽ giúp bạn xác định một khổ thơ cụ thể nhưng không phải là tập tin chính xác).

Hy vọng điều này cung cấp cho bạn một nơi để bắt đầu. Lưu ý rằng điều này sẽ chỉ hoạt động cho logrotate> v3.7.5.


1
Tiện dụng. Trên thực tế, cả tập lệnh trước và sau xoay đều xuất hiện để nhận tên tệp được xoay là $ 1, đó chính xác là những gì câu hỏi yêu cầu.
đánh dấu

1
@mark tập lệnh nhận tên của tệp đầu vào , không phải tệp đầu ra
kbolino
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.