Xoay tệp nhật ký trong khi quá trình vẫn đang chạy


16

Tôi có một quá trình đang chạy ghi đầu ra tiêu chuẩn và lỗi tiêu chuẩn vào một tệp nhật ký /var/log/dragonturtle.log. Có cách nào để xoay tệp nhật ký và có quá trình tiếp tục ghi vào tệp nhật ký mới mà không làm hỏng quá trình không?

Điều gì xảy ra hiện tại (được đưa ra cấu hình logrotate bên dưới):

  • Quá trình ghi vào /var/log/dragonturtle.log
  • Logrotate chuyển /var/log/dragonturtle.logđến/var/log/dragonturtle.log.1
  • Quá trình tiếp tục viết thư cho /var/log/dragonturtle.log.1

Điều tôi muốn xảy ra:

  • Quá trình ghi vào /var/log/dragonturtle.log
  • Bản sao logrotate /var/log/dragonturtle.logđể/var/log/dragonturtle.log.1
  • Logrotate cắt ngắn /var/log/dragonturtle.log
  • Quá trình tiếp tục viết thư cho /var/log/dragonturtle.log

/etc/logrotate.d/dragonturtle:

/var/log/dragonturtle.log {
    daily
    missingok
    rotate 7
    compress
    delaycompress
    notifempty
    create 644 dragonturtle dragonturtle
}

Câu trả lời:


14

Các logrotatetùy chọn mà những gì bạn mô tả là copytruncate. Chỉ cần thêm tùy chọn này vào cấu hình logrotate hiện tại của bạn. Đây là đoạn trích từ hướng dẫn sử dụng logrotate.conf:

   copytruncate
          Truncate  the  original log file in place after creating a copy,
          instead of moving the old log file and optionally creating a new
          one,  It  can be used when some program can not be told to close
          its logfile and thus might continue writing (appending)  to  the
          previous log file forever.  Note that there is a very small time
          slice between copying the file and truncating it, so  some  log-
          ging  data  might be lost.  When this option is used, the create
          option will have no effect, as the old log file stays in  place.

Tôi sẽ đề xuất một cái gì đó phức tạp hơn liên quan đến kiểm tra inode và các quy trình rẽ nhánh, nhưng đây là cách đơn giản hơn.
Jeight
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.