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.conf
thiế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 olddir
kho 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")/
prerotate
khối. Không cần cronjob riêng ....