Có thể chạy một lần lặp logrotate bằng tay mà không cần lập lịch cho nó trong một khoảng thời gian không?
Có thể chạy một lần lặp logrotate bằng tay mà không cần lập lịch cho nó trong một khoảng thời gian không?
Câu trả lời:
Đúng: logrotate --force $CONFIG_FILE
--force
sẽ xoay (các) tệp ngay cả khi chúng không đáp ứng các tiêu chí được chỉ định, chẳng hạn như minize, tuổi, v.v.
logrotate --force /etc/logrotate.d/
(chỉ tên thư mục)
--force
sẽ buộc luân chuyển ngay cả khi các file không đáp ứng tiêu chí (tuổi tác, kích thước, vv), nhưng hãy xem xét rằng đây là cách duy nhất để phát hiện những vấn đề thực sự mà có logrotate -d
sẽ không xuất hiện (ví dụ, tôi đã có một máy chủ đang chạy ra khỏi không gian do logrotate không chạy trong nhiều tháng ... và nhờ --force
tôi phát hiện ra rằng có File exists
lỗi. Tôi đã xóa thủ công các tệp đó và bây giờ xoay chính xác hoạt động trở lại!
logrotate -d [your_config_file]
gọi chế độ gỡ lỗi, cung cấp cho bạn một mô tả dài dòng về những gì sẽ xảy ra, nhưng không để lại các tệp nhật ký.
logrotate --force
và làm việc tốt.
Nếu bạn muốn chạy một thư mục cụ thể hoặc tệp nhật ký của daemon, bạn thường có thể tìm thấy cấu hình trong đó /etc/logrotate.d
và chúng sẽ hoạt động độc lập.
Hãy nhớ rằng cấu hình toàn cầu được chỉ định trong /etc/logrotate.conf
sẽ không áp dụng, vì vậy nếu bạn làm điều này, bạn nên đảm bảo bạn chỉ định tất cả các tùy chọn bạn muốn trong /etc/logrotate.d/[servicename]
tệp cấu hình cụ thể.
Bạn có thể dùng thử -d
để xem điều gì sẽ xảy ra:
logrotate -df /etc/logrotate.d/nginx
Sau đó, bạn có thể chạy (sử dụng nginx làm ví dụ):
logrotate -f /etc/logrotate.d/nginx
Và các bản ghi nginx một mình sẽ được xoay.
logrotate -d /etc/logrotate.conf
sẽ chạy qua bất kỳ tập tin conf bao gồm khác quá.
Cách để chạy tất cả logrotate là:
logrotate -f /etc/logrotate.conf
sẽ chạy tệp logrotate chính, bao gồm các cấu hình logrotate khác.
Ban hành lệnh sau, cách để chạy logrotate được chỉ định:
logrotate -vf /etc/logrotate.d/custom
Tùy chọn:
-v: hiển thị quá trình
-f: buộc chạy
tùy chỉnh: cài đặt nhật ký do người dùng xác định
ví dụ: mongodb-log
# mongodb-log rotate
/data/var/log/mongodb/mongod.log {
daily
dateext
rotate 30
copytruncate
missingok
}
chỉnh sửa /var/lib/logrotate.status để đặt lại ngày 'xoay vòng cuối cùng' trên tệp nhật ký bạn muốn kiểm tra.
Sau đó chạy logrotate YOUR_CONFIG_FILE
.
Hoặc bạn có thể sử dụng cờ --force, nhưng chỉnh sửa logrotate.status cho bạn độ chính xác cao hơn so với những gì không và không được xoay.
/var/lib/logrotate.status
tin này không tồn tại trên Debian Squeeze.
Tạo một kịch bản shell để giải quyết vấn đề.
http://www.ict.griffith.edu.au/anthony/software/#logrotate_one
Tập lệnh này sẽ chỉ chạy tệp cấu hình phụ logrotate duy nhất được tìm thấy trong "/etc/logrotate.d", nhưng bao gồm các cài đặt chung từ trong tệp cấu hình toàn cầu "/etc/logrotate.conf". Bạn cũng có thể sử dụng các otpions khác để kiểm tra nó ...
Ví dụ...
logrotate_one -d syslog