Tóm Tắt
Một vài ví dụ về Logrotate - LOGROTATE là gì?
LOGROTATE là một tiện ích tuyệt vời trên Linux giúp đơn giản hóa việc quản lý log files trên hệ thống, bao gồm xoay vòng file log, di chuyển, nén, gửi tự động… Rotate (xoay vòng) ở đây có thể hiểu là tiến trình xử lý file log cũ theo quy định trước đó (xóa/nén/move) đồng thời tạo ra file log mới.
Bằng cách thiết lập đơn giản nhưng chặt chẽ thông qua file cấu hình, Logrotate hoạt động một cách tự động, không cần can thiệp thủ công.
Log files rất quan trọng đối với quản trị viên để theo dõi tình trạng của hệ thống/ứng dụng, tuy vậy nếu quá nhiều log file sẽ khiến dung lượng ổ cứng bị quá tải cũng như gây khó khăn trong việc tìm kiếm thông tin cần thiết.
Logrotate làm được những gì?
- Xoay vòng tập tin log khi đến dung lượng được thiết lập
- Ghi tiếp thông tin log ra file mới khi đã xoay vòng
- Có thể nén file đã xoay vòng
- Tùy chọn kiểu nén file
- Thêm thông tin ngày tháng vào tên của mỗi file log khi xoay vòng
- Thực thi một shell script khi xoay vòng log
- Xóa các file log xoay vòng cũ
Cài đặt Logrotate
Logrotate được cài đặt mặc định trên hầu hết các bản phân phối Linux. Bạn có thể kiểm tra bằng lệnh # logrotate
với kết quả trả lời phiên bản đang chạy trên server
# logrotate logrotate 3.8.7 - Copyright (C) 1995-2001 Red Hat, Inc.
Nếu chưa được cài đặt, bạn hãy cập nhật system packages và tiến hành cài đặt logrotate
Trên hệ thống Ubuntu/Debian:
# sudo apt-get update # sudo apt-get install logrotate
Trên hệ thống CentOS/Redhat:
# sudo yum update # sudo yum install logrotate
10 ví dụ về Logrotate
File cấu hình của Logrotate
- Chương trình logrotate:
/usr/sbin/logrotate
- Script thực thi chạy logrotate hàng ngày
/etc/cron.daily/logrotate
- File cấu hình của logrotate
/etc/logrotate.conf
- Thư mục lưu trữ file cấu hình cho các ứng dụng của Logrotate
/etc/logrotate.d
Xoay vòng khi file log đạt đến dung lượng xác định
Ví dụ, bạn có một file /tmp/output.log
và muốn nó xoay vòng khi nó đạt đến dung lượng 1KB:
/tmp/output.log {
size 1k
create 700 bala bala
rotate 4
}
- Chú thích:
size 1k
: Dung lượng của file (Lớn hơn hoặc bằng). Khi file đạt đến mức, nó sẽ sinh ra một file mới.create 700 bala bala
: File mới được sinh ra với quyền &00 và thuộc sở hữu của user và nhómbala
rotate 4
: Số lượng file xoay vòng là 4.
Xoay vòng file khi đến một dung lượng và viết tiếp vào file log cũ.
Tùy chọn copytruncate
, giúp chúng ta làm việc này.
/tmp/output.log {
size 1k
copytruncate
rotate 4
}
Nén file log xoay vòng.
Mặc định, file log sẽ được nén bằng gzip
.
/tmp/output.log {
size 1k
copytruncate
create 700 bala bala
rotate 4
compress
}
Ở ví dụ này, chúng ta sẽ nén file log đã xoay vòng và file log mới tạo ra thuộc sở hữu của user và group có tên là bala
với t đa là 4 file.
Thêm ngày tháng vào tên file log đã xoay vòng
/tmp/output.log {
size 1k
copytruncate
create 700 bala bala
dateext
rotate 4
compress
}
Cùng với mục đích ở trên VD4, file log sẽ được nén và tên file sẽ được thêm ngày tháng với tùy chọn dateext
.
$ ls -lrt /tmp/output*
-rw-r--r-- 1 bala bala 8980 2010-06-09 22:10 output.log-20100609.gz
-rwxrwxrwx 1 bala bala 0 2010-06-09 22:11 output.log
Tùy chọn xoay vòng theo ngày/tuần/tháng
Chúng ta có thể cài đặt được log xoay vòng định kỳ theo ngày/tuần/tháng/năm
/tmp/output.log {
monthly
copytruncate
rotate 4
compress
}
- Chú ý:
- Chúng ta thay thể
monthly
bằng các tùy chọn:- hourly: theo giờ
- daily: theo ngày
- weekly: theo tuần/tháng
- monthly: theo tháng
- yearly: theo năm
- Chúng ta thay thể
Thực thi một script sau khi xoay vòng log
/tmp/output.log {
size 1k
copytruncate
rotate 4
compress
postrotate
/home/bala/myscript.sh
endscript
}
Cho phép bạn chạy một script có tên là myscript.sh
sau khi rotate thực hiện xong.
Lưu trữ file xoay vòng trong khoảng thời gian
/tmp/output.log {
size 1k
copytruncate
rotate 4
compress
maxage 100
}
Tùy chọn maxage
cho phép bạn cấu hình thời gian lưu trữ file log. Ở ví dụ là 100 ngày.
Tùy chọn missingok
Tùy chọ này cho phép bỏ qua các file log thực hiện xoay vòng khi nó không tồn tại.
/tmp/output.log {
size 1k
copytruncate
rotate 4
compress
missingok
}
Tùy chọn kiểu nén file log
Mặc định, Sử dụng GZIP để nén file. Chúng ta có thể thay thế bằng trình nén khác với tùy chọn:
compress
: Thực thi việc nén filecompresscmd
: Câu lệnh thực thi việc nén file. (Mặc định: GZIP)compressext
: Xác định phần mở rộng của file nén. Trên ví dụ: bz2
/tmp/output.log {
size 1k
copytruncate
create
compress
compresscmd /bin/bzip2
compressext .bz2
rotate 4
}