Tôi đã thêm hai tập lệnh trong thư mục "logrotate.d" cho nhật ký ứng dụng của mình để được xoay. Đây là cấu hình cho một trong số họ:công việc cron logrotate không xoay các bản ghi nhất định
<myLogFilePath> {
compress
copytruncate
delaycompress
dateext
missingok
notifempty
daily
rotate 30
}
Có một "logrotate" kịch bản trong "cron.daily" thư mục (mà dường như được chạy hàng ngày theo bản ghi cron):
#!/bin/sh
echo "logrotate_test" >>/tmp/logrotate_test
#/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1
/usr/sbin/logrotate -v /etc/logrotate.conf &>>/root/logrotate_error
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
Câu lệnh echo đầu tiên đang hoạt động.
Nhưng tôi thấy nhật ký ứng dụng của mình không bị xoay vòng, trong khi các nhật ký khác như httpd đang được xoay **
** Và tôi cũng không thấy bất kỳ đầu ra nào trong tệp "logrotate_error" được đề cập (có quyền ghi Cho tất cả người dùng).
Tuy nhiên, syslog nói: "logrotate: ALERT thoát bất thường với [1]"
Nhưng khi tôi chạy cùng "logrotate" trong "cron.daily" kịch bản bằng tay, mọi thứ dường như làm việc tốt.
Tại sao nó không quay trong lịch biểu cron hàng ngày? Tôi có làm gì sai ở đây không?
Sẽ rất tuyệt nếu tôi nhận được sự trợ giúp cần thiết này.
CẬP NHẬT: Dường như, đó là vì selinux - các tập tin log trong thư mục chính người sử dụng tôi đã hạn chế áp đặt bởi selinux và khi logrotate kịch bản được điều hành:
SELinux is preventing /usr/sbin/logrotate from getattr access on the file /home/user/logs/application.log
đâu này lấy từ đâu? Bạn có thể vui lòng thêm nó? Tôi đã google và tôi thấy rất nhiều thông điệp tương tự như vậy, nhưng tôi không thể tìm thấy nguồn. Đây có phải là tin nhắn mặc định mà SELinux đưa ra không? –