Làm thế nào để thay đổi xoay vòng có hiệu lực


99

Tôi đã theo liên kết này để thay đổi cấu hình xoay vòng log cho RHEL 6

Sau khi tôi thực hiện thay đổi tệp cấu hình, tôi nên làm gì để điều này có hiệu lực?

Câu trả lời:


139

logrotatesử dụng crontabđể làm việc. Đó là công việc được lên lịch, không phải là daemon, vì vậy không cần tải lại cấu hình của nó.
Khi crontabthực thi logrotate, nó sẽ tự động sử dụng tệp cấu hình mới của bạn.
Nếu bạn cần kiểm tra cấu hình của mình, bạn cũng có thể tự thực hiện logrotatebằng lệnh:

logrotate /etc/logrotate.d/your-logrotate-config

Hoặc như đã đề cập trong các nhận xét, xác định logrotatedòng trong đầu ra của lệnh crontab -lvà thực thi dòng lệnh tham khảo câu trả lời của slm để có lời giải thích chính xác về cron.d Daily


1
Chỉ cần thêm vào câu trả lời của bạn, mục nhập cron logrotateđược lên lịch để chạy một lần một ngày.
mkc

@Ketan, vậy, làm thế nào tôi có thể làm cho nó ảnh hưởng ngay lập tức? cảm ơn
BufBills

Không chắc. Một khả năng là tìm mục tương ứng từ crontab thông qua crontab -lvà thực hiện nó.
mkc

2
Nếu bạn muốn nó có hiệu lực ngay lập tức hãy chạy các mật khẩu cron.
slm

2
logrotatecó một -dtùy chọn để thử nghiệm (hoặc "gỡ lỗi"), tôi khuyên bạn nên chạy nó ít nhất một lần với điều đó.
Thất

36

Hầu hết các logrotatethiết lập tôi đã thấy trên các bản phát hành khác nhau đều hết /etc/cron.daily. Có một kịch bản shell có tên thích hợp logrotate.

Thí dụ

$ ls -l /etc/cron.daily/logrotate 
-rwxr-xr-x 1 root root 180 May 18  2011 /etc/cron.daily/logrotate

Chạy thủ công

Nếu bạn muốn làm cho nó chạy thủ công, chỉ cần chạy tập lệnh dưới dạng root:

$ sudo /etc/cron.daily/logrotate

Nếu bạn xem một tập lệnh thường có ở đó, nó sẽ cho bạn thấy cách bạn cũng có thể chạy logrotatethủ công, chỉ bằng cách chạy logrotate+ đường dẫn đến tệp cấu hình của nó.

#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

31

Nó sẽ được tự động thông qua cron. Bạn có thể buộc nó kiểm tra những thay đổi của bạn.

Đối với logrotate toàn cầu:

sudo logrotate -v -f /etc/logrotate.conf

Đối với một tập tin conf duy nhất:

sudo logrotate -v -f /etc/logrotate.d/someapp.conf

11
-fđối với lực xoay, cũng có -dđể gỡ lỗi, cũng là Dry run, nó sẽ in mọi thứ nó sẽ làm nhưng không thực sự làm điều đó.
ThorSummoner

5

Trên máy CentOS 6.5 của tôi để thiết lập logrotate cho nginx, tôi đã phải làm điều này:

logrotate /etc/logrotate.d/nginx

Và sau đó tôi đã kiểm tra xem logrotate có chăm sóc cấu hình nginx mới của tôi như thế này không:

cat /var/lib/logrotate.status
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.