Yêu cầu thg 6 22, 2021 7:32 SA 97 0 1
  • 97 0 1
0

Logic logrotate trên centos

Chia sẻ
  • 97 0 1

Mình có 1 đoạn config logrotate như vậy

/home/me/public_html/logs/*.log {
    daily
    missingok
    rotate 15
    compress
    delaycompress
    notifempty
    create 0660 me www-data
}

Giả sử mình setup config vào ngày 01/01 4:00 PM.

Crontab chạy lúc 1:00 AM mỗi ngày.

Và kết quả là 1:00 AM ngày 02/01 có status logrotate. Nhưng không có file rotate.

Nhưng đến ngày 03/01 lại có có file rotated ngày 02/01 và cả file rotate ngày 03/01. Có bạn nào có thể giải thích giúp mình được không ạ?

thg 6 25, 2021 2:20 SA

Em check xem trên server thì timezone đang là bao nhiêu. Có thể ngày 02/01 trên máy em nhưng tên server thì nó vẫn đang là ngày 01/01 thôi.

Avatar Hải Hà @HaiHaChan
thg 6 25, 2021 3:09 SA

@huukimit Em có check timezone rồi. Không phải vấn đề timezone anh ạ Với cả logrotate đã được thực hiện vì em kiểm tra file status thì có lưu log. Tuy nhiên lại không thấy file rotated được tạo ra vào ngày đâu tiên??? Nhưng đến ngày thứ 2 thì em lại thấy có cả file rotated của ngày đầu tiên và ngày thứ 2???

Avatar Hải Hà @HaiHaChan
thg 6 25, 2021 3:13 SA
Giả sử mình setup config vào ngày 01/01 4:00 PM.

Crontab chạy lúc 1:00 AM mỗi ngày.

Và kết quả là 1:00 AM ngày 02/01 có status logrotate. Nhưng không có file rotate.

Nhưng đến ngày 03/01 lại có có file rotated ngày 02/01 và cả file rotate ngày 03/01. 

Em đang thắc mắc là nếu logic là sau 1 ngày file rotated mới được tạo ra vậy tại sao ngày thứ 03 đã có file rotated của ngày 03. Đáng nhẽ chỉ có file của ngày 02 thôi chứ. Ngược lại, nếu logic là file rotated được tạo ngay trong ngày, vậy tại sao lại không có file rotated vào ngày 02???

1 CÂU TRẢ LỜI


Đã trả lời thg 6 28, 2021 9:44 SA
Đã được chấp nhận
0

Theo như config kia thì anh thấy là syntax và cấu hình đúng rồi em ạ. Không biết em đang check như nào để nhận định là "không có file rotate" nhỉ? Có khi nào em đang filter theo các file .log.*.gz nên nhận định như vậy không?

Trong config của em anh thấy có dùng compress kết hợp với delaycompress. Khi bật delaycompress thì sẽ chưa có file archive (*.gz) của file log mới đâu. VD:

  • Ngày 01/01 -> tạo file log cho ngày 01/01, chưa có file gz nào được tạo.
  • Ngày 02/01 -> tạo file log cho ngày 02/01, archive file log ngày 01/01, chưa có file gz cho ngày 02/01.
  • Ngày 03/01 -> tạo file log cho ngày 03/01, archive file log ngày 02/01, chưa có file gz cho ngày 03/01.

Em thử bỏ cái delaycompress thì file log rotate mới sẽ được archive thành file *.gz luôn.

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí