Không thể hack được logrotate.
Tuy nhiên, bạn có thể 'gian lận' và đạt được hiệu quả tương tự bằng cách sử dụng symlink và cron . Trong bạn logrotate.confthiết lập olddirđể /home/mhd-01/logs/olddir/và tạo ra một cronjob hàng ngày có quyền này:
mkdir /home/mhd-01/logs/archive/$(date "+%y%m%d")
ln -sf /home/mhd-01/logs/archive/$(date "+%y%m%d") /home/mhd-01/logs/olddir/
Hãy chắc chắn rằng cronjob mới này chạy trước công việc logrotate - hoặc gắn nó /etc/cron.daily/với một số ở phía trước (ví dụ 01_linkrotate:) hoặc đặt nó chạy vào nửa đêm (00:00)
Một biến thể của bộ giải pháp này, không có liên kết tượng trưng, sẽ sử dụng cronđể di chuyển nội dung của olddirkho lưu trữ. Các cronjob, chạy sau logrotate hoặc vào cuối ngày (23:59), sẽ làm như sau:
mkdir /home/mhd-01/logs/archive/$(date "+%y%m%d")
mv /home/mhd-01/logs/olddir/* /home/mhd-01/logs/archive/$(date "+%y%m%d")/
prerotatekhối. Không cần cronjob riêng ....