Tôi đã cố gắng sử dụng logrotate để lưu trữ bản sao lưu cơ sở dữ liệu cho:
- 7 ngày qua (hàng ngày)
- 4 tuần qua (hàng tuần)
- 12 tháng qua (hàng tháng)
Tôi đã thực hiện một kịch bản logrotate như thế này, nhưng chỉ có các phép quay hàng ngày được thực hiện.
Những gì tôi đang thiếu hoặc làm sai? Là định dạng ngày * ' hàng tuần ' * chuỗi phá vỡ tập lệnh? Nếu vậy, làm thế nào có thể đạt được để đặt một tên riêng cho từng loại tệp được xoay? Ví dụ: sử dụng 'phần mở rộng .week' ?
Lưu ý: Tôi đã sử dụng prerotate và postrotate trên các vòng quay hàng tuần và hàng tháng để tạo một tệp giả để kiểm tra xem chúng có được thực hiện hay không, nhưng các tệp không bao giờ được tạo.
Lưu ý 2: tệp /backups/db.sql được tạo chính xác
#daily (son)
"/backups/db.sql" {
daily
rotate 7
missingok
copy
compress
}
#weekly (father)
"/backups/db.sql" {
weekly
rotate 4
missingok
copy
dateext
dateformat _weekly_%Y-%m-%d.
compress
prerotate
touch /backups/weekly_pre.txt
endscript
postrotate
touch /backups/weekly_post.txt
endscript
}
#monthly (grandfather)
"/backups/db.sql" {
monthly
rotate 12
missingok
copy
dateformat _monthly_%Y-%m-%d.
compress
prerotate
touch /backups/monthly_pre.txt
endscript
postrotate
touch /backups/monthly_post.txt
endscript
}
Nếu tôi thực hiện logrotate bằng tay với
logrotate -d /path/to/logrotate_job
tôi có
# logrotate -d /path/to/logrotate_job
reading config file logrotate_job
reading config info for "/backups/db.sql"
error: db_backup:11 duplicate log entry for /backups/db.sql
error: found error in "/backups/db.sql" , skipping
removing last 1 log configs
Handling 2 logs
rotating pattern: "/backups/db.sql" after 1 days (7 rotations)
empty log files are rotated, old logs are removed
considering log /backups/db.sql
log does not need rotating
rotating pattern: "/backups/db.sql" 1048576 bytes (no old logs will be kept)
empty log files are rotated, old logs are removed
Có vẻ như cùng một tệp không thể được xoay, vậy làm thế nào để có thể xoay tệp hàng ngày nếu tên của nó bao gồm ngày?
Đang cố gắng thiết lập trong nhiệm vụ hàng tuần:
không hẹn hò
cp prerotate hàng ngày được bảo vệ thành Dailyrotated.week
Và thiết lập hàng tháng
không hẹn hò
cp prerotate Weeklyrotated thành Weeklyrotated.month
weekly
phần được đặt thànhdaily
.