Là logrotate ẩn ở đâu đó trên OSX, hoặc có tương đương không? Nó không ở trong /usr/sbin
.
Là logrotate ẩn ở đâu đó trên OSX, hoặc có tương đương không? Nó không ở trong /usr/sbin
.
Câu trả lời:
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
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:
logrotate
. Nó được cấu hình bởi /etc/newsyslog.conf
và /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ó)./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
./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.local
và đặ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).
newsyslog
chạ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
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.
brew install logrotate
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
}
sudo logrotate -v -f /usr/local/etc/logrotate.d
sudo brew services start logrotate
sudo brew services restart logrotate
Một cách để làm điều đó:
http://blog.cantremember.com/logrotate-mac-os-launch-daemon-with-legacy-macport/