Tương đương với logrotate trên OSX


52

logrotate ẩn ở đâu đó trên OSX, hoặc có tương đương không? Nó không ở trong /usr/sbin.


Tôi nhận thấy có newsyslog, nhưng nó không hoàn toàn giống nhau và yêu cầu root.
Steve Bennett

Logrotate có thể được chuyển, tôi tự hỏi.
Tom O'Connor

kiểm tra / etc / định kỳ, tôi tin rằng xoay vòng nhật ký theo mặc định được triển khai như một tập hợp các tập lệnh shell trong đó. Đồng thời xem newsyslog (/etc/newsyslog.d và trang man) để biết cách thực hiện dựa trên kích thước tệp.
malcolmpdx

cảm ơn vì những lời khuyên - thực sự có các kịch bản trong / etc / định kỳ
Steve Bennett

@SteveBennett Mọi người sẽ nhận huy hiệu "Phê bình" như thế nào? Một số người chỉ ở đây vì huy hiệu và danh tiếng, bạn không biết.
Mark Fisher

Câu trả lời:


23

Dựa trên câu trả lời của Brian Armstrong, đây là một cái gì đó với một chút giải thích và điều chỉnh. Điều này xử lý nhật ký được tạo bởi postgres trên OSX được cài đặt bởi Homebrew. Tọa lạc tại /etc/newsyslog.d/postgresql.conf:

# logfilename                           [owner:group]      mode count size(KB)  when  flags [/pid_file]                            [sig_num]
/usr/local/var/postgres/postgresql.log  :                  600  2     2048      *     J     /usr/local/var/postgres/postmaster.pid 

Thao tác này sẽ xoay tệp nhật ký khi đạt kích thước 2 MB, giữ 2 tệp lưu trữ (cho tổng dung lượng lưu trữ 6 MB được sử dụng) và nén bzip2 để lưu trữ. Nó sẽ thông báo cho quá trình postgres để mở lại các tệp nhật ký sau khi được xoay, điều này là cần thiết để có được các mục nhật ký mới và thực sự giải phóng không gian đĩa mà không cần khởi động lại máy.

Điều quan trọng cần lưu ý rằng kích thước được tính bằng KB, không phải byte.

Bạn có thể kiểm tra tệp cấu hình (mà không ảnh hưởng đến bất kỳ tệp nào) bằng cách sử dụng sudo newsyslog -nvv.

tài liệu newsyslog được đặt ở đây: http://www.freebsd.org/cgi/man.cgi?newsyslog.conf(5) . Cũng được sử dụng: http://www.redelijkheid.com/blog/2011/3/28/adding-custom-logfile-to-os-x-server-log-rotation.html


21

OS X có một số cách để xoay / hết hạn / vv nhật ký của nó, tùy thuộc vào loại nhật ký trong câu hỏi:

  1. Đối với các tệp nhật ký thông thường (tức là các tệp văn bản được liên tục thêm vào), newsyslog có thể xoay chúng dựa trên kích thước hoặc thời gian, mặc dù dường như nó không có nhiều tùy chọn như logrotate. Nó được cấu hình bởi /etc/newsyslog.conf/etc/newsyslog.d/*(nói chung, bạn nên thêm tệp /etc/newsyslog.d/để thêm nhật ký vào danh sách quản lý của nó).
  2. Hệ thống nhật ký hệ thống của OS X đang chuyển từ định dạng văn bản thuần túy này sang định dạng cơ sở dữ liệu, chủ yếu ở /var/log/asl/. Tôi hoàn toàn không hiểu hệ thống này, nhưng cơ sở dữ liệu này dường như bị thanh trừng bởi aslmanager , được cấu hình bởi /etc/asl.conf.
  3. Đối với các thư mục có "mục" nhật ký riêng lẻ được thêm dưới dạng các tệp riêng biệt (chủ yếu /Library/Logs/CrashReporter/), các tệp sẽ bị xóa /etc/periodic/daily/100.clean-logs. Chính sách của nó (thư mục nào cần quét và thời gian để lại tệp) được định cấu hình /etc/defaults/periodic.conf, nhưng nếu bạn muốn ghi đè / thay đổi chúng, bạn nên tạo /etc/periodic.conf.localvà đặt các tùy chỉnh của mình ở đó.

Nếu những gì bạn muốn xoay không phù hợp với bất kỳ mô hình nào trong số này, bạn có thể thêm tập lệnh của riêng mình vào /etc/periodic/daily/(sẽ được chạy vào mỗi buổi sáng lúc 3:15 sáng), /etc/periodic/weekly/(mỗi buổi sáng thứ bảy lúc 3:15 sáng) hoặc /etc/periodic/monthly/(đầu tiên là mỗi tháng lúc 5:30 sáng).


11

newsyslogchạy tự động trên OSX, tôi sử dụng tệp cấu hình như thế này /etc/newsyslog.d/rails_apps.confđể giữ cho các tệp nhật ký dev của tôi được cắt bớt thành 5MB

# logfilename                           [owner:group]   mode count size     when  flags [/pid_file] [sig_num]
/Users/barmstrong/code/**/log/*.log                     666  0     5242880  *     G

kích thước là K và yêu cầu ":" cho chủ sở hữu: nhóm ngay cả khi chúng trống
Bryan Ash

9

Bạn có thể nhận được logrotate qua Homebrew. Dưới đây là những lưu ý của tôi từ việc thiết lập này.

Tải về

brew install logrotate

Cấu hình xoay vòng log

Nhật ký tập tin cấu hình xoay vòng trong /usr/local/etc/logrotate.d/

Chỉnh sửa tập tin cấu hình. Ví dụ: tôi muốn xoay một số tệp "/var/log/tend_*.log" mà tôi đã giới thiệu:

sudo vi /usr/local/etc/logrotate.d/tend.conf

Nội dung: /var/log/tend_*.log { daily copytruncate rotate 3 size 10M compress }

Kiểm tra nó ra

sudo logrotate -v -f /usr/local/etc/logrotate.d

Bắt đầu dịch vụ

sudo brew services start logrotate

Khởi động lại dịch vụ

sudo brew services restart logrotate


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.