Tìm kiếm bài viết

Logrotate là gì ? Một vài ví dụ về Logrotate

06.01.2020

0/5 (0 Reviews)

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.

    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.

    Logrotate là gì ? Một vài ví dụ về Logrotate

    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ũ

    Logrotate là gì ? Một vài ví dụ về Logrotate

    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óm bala
      • 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

    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 file
    • compresscmd: 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
    }
    

    Tham khảo:

    CÓ THỂ BẠN QUAN TÂM

    Bài Viết Cùng Chuyên Mục

    XEM THÊM
    thumbnail

    Kubernetes bài 6 - Vận hành k8s Day-Two Operations và Quản trị bằng GitOps

    22.05.2026

    Khi cụm Kubernetes của bạn đã được bảo mật cấu hình, tối ưu tài nguyên và thiết lập tự phục hồi, câu hỏi đặt ra là làm sao để duy trì sự ổn định đó trong nhiều năm tiếp theo mà không bị phụ thuộc

    thumbnail

    Kubernetes bài 5 - bảo mật Cloud Native và chuẩn DevSecOps cho K8s

    22.05.2026

    Việc siết chặt an ninh (Hardening) không phải là cấu hình một vài thông số rồi bỏ đó, mà là một tư duy phòng thủ chiều sâu.

    thumbnail

    Kubernetes bài 4 - Tối ưu Resource Auto-Healing và Scale Zero-Downtime

    22.05.2026

    Bài viết này sẽ đi sâu vào các cơ chế ở tầng Kernel giúp hệ thống tự phục hồi, chống lại các đợt tấn công cạn kiệt tài nguyên và cập nhật phiên bản mới mà người dùng không hề hay biết.

    thumbnail

    Kubernetes bài 3 - Bảo mật cấu hình k8s và config Security trên Production

    22.05.2026

    Kubernetes giải quyết bài toán này bằng hai đối tượng chuyên biệt nhưng nếu không hiểu rõ bản chất bảo mật ở tầng dưới, bạn đang tự tay dâng toàn bộ chìa khóa hệ thống cho hacker.

    thumbnail

    Kubernetes bài 2 - Mạng lưới k8s và luồng Traffic ở Packet Level

    22.05.2026

    Pod không chỉ là một container: Rất nhiều người nhầm lẫn Pod 1-1 với Container. Thực chất, Pod là đơn vị triển khai nhỏ nhất, có thể chứa một hoặc nhiều container

    Mục lục bài viết