2015-07-01 10 views

Trả lời

19

Đây là a blog post in French cung cấp giải pháp.

Bằng tiếng Anh, bạn có thể đọc this bug report.

Để tóm tắt:

  1. Trước tiên, bạn phải thêm tùy chọn --verbose trong kịch bản /etc/cron.daily/logrotate để có thêm thông tin lần sau khi nó chạy để xác định luân chuyển log gây ra vấn đề.

    #!/bin/sh 
    
    test -x /usr/sbin/logrotate || exit 0 
    /usr/sbin/logrotate --verbose /etc/logrotate.conf` 
    
  2. Tiếp theo, bạn phải thêm tùy chọn delaycompress trong cấu hình logrotate.

+1

Bạn có thể chạy logrotate ngay lập tức hoặc bạn có phải đợi nó chạy lại không? Làm thế nào để bạn thêm delaycompress vào cấu hình logrotate? Bạn có thể đưa ra một ví dụ không? –

+2

@LanceHolland bạn có thể chạy lại với:/usr/sbin/logrotate /etc/logrotate.conf Tuy nhiên, tùy thuộc vào cài đặt logrotate của bạn (tần số, phút, v.v.), các điều kiện có thể không đủ để gây ra vấn đề gzip . Tôi nghĩ tốt nhất là thêm tiết và sau đó để nó chạy theo lịch trình hàng ngày. –

+0

'delaycompress' sẽ chỉ giúp bạn trong một số trường hợp nhất định. Xem câu trả lời của tôi. – Ztyx

0

upstart sẽ đóng (và mở lại) tệp nhật ký khi it notices that the file is deleted. Tuy nhiên, nếu bạn nhìn vào what gzip does, bạn sẽ thấy rằng nó không xóa tệp cho đến sau khi tệp đó ghi tệp đầu ra. Điều đó có nghĩa rằng luôn luôn có một điều kiện chủng tộc, nơi dòng đăng nhập có thể bị mất cho các bản ghi dòng được viết gzipping.

Bạn có thể tắt cảnh báo bằng cách sử dụng gzip --quiet, nhưng thực sự điều đó không che giấu thực tế rằng bạn vẫn có thể bị mất dòng nhật ký.

Điều này có nghĩa là delaycompress không phải là cách khắc phục chung cho điều này. Đó là một sửa chữa cụ thể cho một vấn đề cụ thể.

Giải pháp thực sự cho điều này có lẽ là sự kết hợp của delaycompress và có thể gửi tín hiệu đến quy trình. Nó sẽ làm cho tình trạng chủng tộc biến mất trong thực tế (trừ khi bạn xoay nhiều lần mỗi giây :)).

Các vấn đề liên quan