Hướng dẫn cài đặt rsyslog trên ubuntu

Logrotate là một tiện ích hệ thống quản lý việc tự động xoay và nén các tệp nhật ký (log files). Nếu các tệp nhật ký không được xoay, nén và cắt bỏ định kỳ, cuối cùng chúng có thể chiếm hết dung lượng đĩa có sẵn trên hệ thống.

Show

    Logrotate được cài đặt mặc định trên Ubuntu 20.04 và được thiết lập để xử lý nhu cầu xoay vòng nhật ký của tất cả các gói đã cài đặt, bao gồm

    1. logrotate --version

    9, bộ xử lý nhật ký hệ thống mặc định.

    Trong bài viết này, chúng ta sẽ khám phá cấu hình Logrotate mặc định, sau đó thiết lập cấu hình xoay vòng nhật ký cho một ứng dụng tùy chỉnh hư cấu.

    Hướng dẫn này giả sử bạn có máy chủ Ubuntu 20.04, với non-root sudo-enabled user (không hỗ trợ sudo), như được mô tả trong Thiết lập máy chủ ban đầu với Ubuntu 20.04.

    Logrotate cũng có sẵn trên nhiều bản phân phối Linux khác, nhưng cấu hình mặc định có thể khác. Các phần khác của hướng dẫn này vẫn sẽ áp dụng, miễn là phiên bản Logrotate của bạn tương tự như Ubuntu 20.04. Làm theo Bước 1 để xác định phiên bản Logrotate của bạn.

    Đăng nhập vào máy chủ của bạn với tư cách là sudo-enabled user của bạn để bắt đầu.

    Logrotate được cài đặt theo mặc định trên Ubuntu. Tuy nhiên, nếu bạn cần cài đặt nó, hãy chạy các lệnh sau để cập nhật danh sách gói của bạn và truy xuất gói:

    1. sudo apt update
    2. sudo apt install logrotate

    Nếu bạn đang sử dụng máy chủ không phải Ubuntu, trước tiên hãy đảm bảo rằng Logrotate đã được cài đặt bằng cách yêu cầu thông tin phiên bản của nó:

    1. logrotate --version
    
    Output
    
    logrotate 3.14.0
        Default mail command:       /usr/bin/mail
        Default compress command:   /bin/gzip
        Default uncompress command: /bin/gunzip
        Default compress extension: .gz
        Default state file path:    /var/lib/logrotate/status
        ACL support:                yes
        SELinux support:            yes
    

    Nếu Logrotate được cài đặt nhưng số phiên bản khác nhau đáng kể, bạn có thể gặp sự cố với một số tùy chọn cấu hình được khám phá trong hướng dẫn này. Tham khảo tài liệu dành cho phiên bản Logrotate cụ thể của bạn bằng cách đọc trang hướng dẫn sử dụng (

    
    Output
    
    logrotate 3.14.0
        Default mail command:       /usr/bin/mail
        Default compress command:   /bin/gzip
        Default uncompress command: /bin/gunzip
        Default compress extension: .gz
        Default state file path:    /var/lib/logrotate/status
        ACL support:                yes
        SELinux support:            yes
    

    1. của nó:

    1. man logrotate

    Bạn cũng có thể tham khảo phiên bản trực tuyến của tài liệu Logrotate. Tiếp theo, chúng ta sẽ xem xét cấu trúc cấu hình mặc định của Logrotate trên Ubuntu.

    Thông tin cấu hình của Logrotate thường có thể được tìm thấy ở hai nơi trên Ubuntu:

    • Output logrotate 3.14.0
      Default mail command:       /usr/bin/mail  
      Default compress command:   /bin/gzip  
      Default uncompress command: /bin/gunzip  
      Default compress extension: .gz  
      Default state file path:    /var/lib/logrotate/status  
      ACL support:                yes  
      SELinux support:            yes  
      

      1: tệp này chứa một số cài đặt mặc định và thiết lập xoay vòng cho một số nhật ký không thuộc sở hữu của bất kỳ gói hệ thống nào. Nó cũng sử dụng câu lệnh

      Output logrotate 3.14.0
      Default mail command:       /usr/bin/mail  
      Default compress command:   /bin/gzip  
      Default uncompress command: /bin/gunzip  
      Default compress extension: .gz  
      Default state file path:    /var/lib/logrotate/status  
      ACL support:                yes  
      SELinux support:            yes  
      

      2 để lấy cấu hình từ bất kỳ tệp nào trong thư mục

      Output logrotate 3.14.0
      Default mail command:       /usr/bin/mail  
      Default compress command:   /bin/gzip  
      Default uncompress command: /bin/gunzip  
      Default compress extension: .gz  
      Default state file path:    /var/lib/logrotate/status  
      ACL support:                yes  
      SELinux support:            yes  
      
      3.
    • Output logrotate 3.14.0
      Default mail command:       /usr/bin/mail  
      Default compress command:   /bin/gzip  
      Default uncompress command: /bin/gunzip  
      Default compress extension: .gz  
      Default state file path:    /var/lib/logrotate/status  
      ACL support:                yes  
      SELinux support:            yes  
      

      4: đây là nơi bất kỳ gói nào bạn cài đặt cần trợ giúp xoay vòng nhật ký sẽ đặt cấu hình Logrotate của chúng. Trên bản cài đặt tiêu chuẩn, bạn nên có các tệp ở đây cho các công cụ hệ thống cốt lõi như

      Output logrotate 3.14.0
      Default mail command:       /usr/bin/mail  
      Default compress command:   /bin/gzip  
      Default uncompress command: /bin/gunzip  
      Default compress extension: .gz  
      Default state file path:    /var/lib/logrotate/status  
      ACL support:                yes  
      SELinux support:            yes  
      

      5,

      Output logrotate 3.14.0
      Default mail command:       /usr/bin/mail  
      Default compress command:   /bin/gzip  
      Default uncompress command: /bin/gunzip  
      Default compress extension: .gz  
      Default state file path:    /var/lib/logrotate/status  
      ACL support:                yes  
      SELinux support:            yes  
      

      6,

      `
      1. logrotate --version ` 9, v.v.

    Theo mặc định,

    
    Output
    
    logrotate 3.14.0
        Default mail command:       /usr/bin/mail
        Default compress command:   /bin/gzip
        Default uncompress command: /bin/gunzip
        Default compress extension: .gz
        Default state file path:    /var/lib/logrotate/status
        ACL support:                yes
        SELinux support:            yes
    

    8 sẽ thiết lập cấu hình luân phiên nhật ký hàng tuần, với các tệp nhật ký thuộc sở hữu của root user và syslog group, với bốn tệp nhật ký được giữ lại cùng một lúc (

    
    Output
    
    logrotate 3.14.0
        Default mail command:       /usr/bin/mail
        Default compress command:   /bin/gzip
        Default uncompress command: /bin/gunzip
        Default compress extension: .gz
        Default state file path:    /var/lib/logrotate/status
        ACL support:                yes
        SELinux support:            yes
    

    1. và các tệp nhật ký trống mới được tạo sau tệp hiện tại được xoay (

    1. man logrotate

    0).

    Hãy xem tệp cấu hình Logrotate của gói trong

    
    Output
    
    logrotate 3.14.0
        Default mail command:       /usr/bin/mail
        Default compress command:   /bin/gzip
        Default uncompress command: /bin/gunzip
        Default compress extension: .gz
        Default state file path:    /var/lib/logrotate/status
        ACL support:                yes
        SELinux support:            yes
    

    3.

    1. man logrotate

    2 tệp cho tiện ích gói

    
    Output
    
    logrotate 3.14.0
        Default mail command:       /usr/bin/mail
        Default compress command:   /bin/gzip
        Default uncompress command: /bin/gunzip
        Default compress extension: .gz
        Default state file path:    /var/lib/logrotate/status
        ACL support:                yes
        SELinux support:            yes
    

    5:

    1. cat /etc/logrotate.d/apt
    
    Output
    
    /var/log/apt/term.log {
      rotate 12
      monthly
      compress
      missingok
      notifempty
    }
    /var/log/apt/history.log {
      rotate 12
      monthly
      compress
      missingok
      notifempty
    }
    

    Tệp này chứa các khối cấu hình cho hai tệp nhật ký khác nhau trong thư mục

    1. man logrotate

    4:

    1. man logrotate

    5 và

    1. man logrotate

    6. Cả hai đều có các tùy chọn giống nhau. Bất kỳ tùy chọn nào không được đặt trong các khối cấu hình này sẽ kế thừa các giá trị mặc định hoặc các giá trị được đặt trong

    
    Output
    
    logrotate 3.14.0
        Default mail command:       /usr/bin/mail
        Default compress command:   /bin/gzip
        Default uncompress command: /bin/gunzip
        Default compress extension: .gz
        Default state file path:    /var/lib/logrotate/status
        ACL support:                yes
        SELinux support:            yes
    

    1. Mọi cài đặt trong tệp logrotate sẽ ghi đè các giá trị mặc định của logrotate, được thiết lập cấu hình trong

    
    Output
    
    logrotate 3.14.0
        Default mail command:       /usr/bin/mail
        Default compress command:   /bin/gzip
        Default uncompress command: /bin/gunzip
        Default compress extension: .gz
        Default state file path:    /var/lib/logrotate/status
        ACL support:                yes
        SELinux support:            yes
    

    1. Các tùy chọn được đặt cho nhật ký

    
    Output
    
    logrotate 3.14.0
        Default mail command:       /usr/bin/mail
        Default compress command:   /bin/gzip
        Default uncompress command: /bin/gunzip
        Default compress extension: .gz
        Default state file path:    /var/lib/logrotate/status
        ACL support:                yes
        SELinux support:            yes
    

    5 là:

    • `
      1. cat /etc/logrotate.d/apt ` 0: giữ mười hai tệp nhật ký cũ. Điều này ghi đè mặc định rotate 4.
    • `
      1. cat /etc/logrotate.d/apt

        1: luân phiên mỗi tháng một lần. Điều này ghi đè mặc định

      2. cat /etc/logrotate.d/apt ` 2.
    • `
      1. cat /etc/logrotate.d/apt

        3: nén các tập tin đã xoay. Điều này sử dụng

      2. cat /etc/logrotate.d/apt

        4 theo mặc định và dẫn đến các tệp kết thúc bằng

      3. cat /etc/logrotate.d/apt

        5. Lệnh nén có thể được thay đổi bằng cách sử dụng tùy chọn

      4. cat /etc/logrotate.d/apt ` 6.
    • `
      1. cat /etc/logrotate.d/apt ` 7: không viết thông báo lỗi nếu thiếu tệp nhật ký.
    • `
      1. cat /etc/logrotate.d/apt ` 8: không xoay tệp nhật ký nếu nó trống.

    Các tệp cấu hình này cũng kế thừa hành vi

    1. man logrotate

    0 mặc định, hướng dẫn Logrotate tạo nhật ký mới sau khi xoay. Điều này có thể được ghi đè với

    
    Output
    
    /var/log/apt/term.log {
      rotate 12
      monthly
      compress
      missingok
      notifempty
    }
    /var/log/apt/history.log {
      rotate 12
      monthly
      compress
      missingok
      notifempty
    }
    

    0, mặc dù điều đó sẽ vô hiệu hóa hiệu quả hầu hết các chức năng khác.

    Có nhiều tùy chọn cấu hình hơn có sẵn. Bạn có thể đọc về tất cả chúng bằng cách gõ

    
    Output
    
    /var/log/apt/term.log {
      rotate 12
      monthly
      compress
      missingok
      notifempty
    }
    /var/log/apt/history.log {
      rotate 12
      monthly
      compress
      missingok
      notifempty
    }
    

    1 trên dòng lệnh để hiển thị trang hướng dẫn sử dụng Logrotate.

    Tiếp theo, chúng ta sẽ thiết lập một tệp cấu hình để xử lý nhật ký cho một dịch vụ hư cấu có tên là

    
    Output
    
    /var/log/apt/term.log {
      rotate 12
      monthly
      compress
      missingok
      notifempty
    }
    /var/log/apt/history.log {
      rotate 12
      monthly
      compress
      missingok
      notifempty
    }
    

    2.

    Để quản lý các tệp nhật ký bằng logrotate cho các ứng dụng bên ngoài các dịch vụ hệ thống được đóng gói sẵn và cấu hình sẵn, chúng ta có hai tùy chọn:

    1. Tạo tệp cấu hình Logrotate mới và đặt nó vào Output logrotate 3.14.0
      Default mail command:       /usr/bin/mail  
      Default compress command:   /bin/gzip  
      Default uncompress command: /bin/gunzip  
      Default compress extension: .gz  
      Default state file path:    /var/lib/logrotate/status  
      ACL support:                yes  
      SELinux support:            yes  
      
      4. Điều này sẽ được chạy hàng ngày với tư cách là root user cùng với tất cả các công việc Logrotate tiêu chuẩn khác.
    2. Tạo tệp cấu hình mới và chạy nó bên ngoài thiết lập Logrotate mặc định của Ubuntu. Điều này chỉ thực sự cần thiết nếu bạn cần chạy Logrotate với tư cách là non-root user hoặc nếu bạn muốn xoay nhật ký thường xuyên hơn hàng ngày (cấu hình

      Output /var/log/apt/term.log { rotate 12 monthly compress missingok notifempty } /var/log/apt/history.log { rotate 12 monthly compress missingok notifempty }

      4 trong

      Output logrotate 3.14.0
      Default mail command:       /usr/bin/mail  
      Default compress command:   /bin/gzip  
      Default uncompress command: /bin/gunzip  
      Default compress extension: .gz  
      Default state file path:    /var/lib/logrotate/status  
      ACL support:                yes  
      SELinux support:            yes  
      
      4 sẽ không hiệu quả, vì thiết lập Logrotate của hệ thống chỉ chạy một lần một ngày).

    Hãy xem xét hai tùy chọn này với một số thiết lập mẫu.

    Chúng ta muốn thiết lập cấu hình xoay vòng nhật ký cho một máy chủ web hư cấu đặt

    
    Output
    
    /var/log/apt/term.log {
      rotate 12
      monthly
      compress
      missingok
      notifempty
    }
    /var/log/apt/history.log {
      rotate 12
      monthly
      compress
      missingok
      notifempty
    }
    

    7 và

    
    Output
    
    /var/log/apt/term.log {
      rotate 12
      monthly
      compress
      missingok
      notifempty
    }
    /var/log/apt/history.log {
      rotate 12
      monthly
      compress
      missingok
      notifempty
    }
    

    8 vào

    
    Output
    
    /var/log/apt/term.log {
      rotate 12
      monthly
      compress
      missingok
      notifempty
    }
    /var/log/apt/history.log {
      rotate 12
      monthly
      compress
      missingok
      notifempty
    }
    

    9. Nó chạy với tư cách là

    1. sudo nano /etc/logrotate.d/your-app

    0 user và group.

    Để thêm cấu hình cho các tệp nhật ký ứng dụng của bạn vào

    
    Output
    
    logrotate 3.14.0
        Default mail command:       /usr/bin/mail
        Default compress command:   /bin/gzip
        Default uncompress command: /bin/gunzip
        Default compress extension: .gz
        Default state file path:    /var/lib/logrotate/status
        ACL support:                yes
        SELinux support:            yes
    

    4, trước tiên hãy mở một tệp mới trong thư mục

    
    Output
    
    logrotate 3.14.0
        Default mail command:       /usr/bin/mail
        Default compress command:   /bin/gzip
        Default uncompress command: /bin/gunzip
        Default compress extension: .gz
        Default state file path:    /var/lib/logrotate/status
        ACL support:                yes
        SELinux support:            yes
    

    3 bằng

    1. sudo nano /etc/logrotate.d/your-app

    3 hoặc trình soạn thảo ưa thích của bạn:

    1. sudo nano /etc/logrotate.d/your-app

    Thêm các dòng sau vào tệp cấu hình mới của bạn:

    /etc/logrotate.d/your-app

    /var/log/your-app/*.log {
      daily
      missingok
      rotate 14
      compress
      notifempty
      create 0640 www-data www-data
      sharedscripts
      postrotate
        systemctl reload your-app
      endscript
    }
    

    Một số chỉ thị cấu hình mới trong tệp này là:

    • `
      1. sudo nano /etc/logrotate.d/your-app

        4: điều này tạo một tệp nhật ký trống mới sau khi xoay vòng, với các quyền được chỉ định (

      2. sudo nano /etc/logrotate.d/your-app

        5, chủ sở hữu (

      3. sudo nano /etc/logrotate.d/your-app `
    • và nhóm (cũng là `
      1. sudo nano /etc/logrotate.d/your-app ` 0).
    • `
      1. sudo nano /etc/logrotate.d/your-app

        8: cờ này có nghĩa là bất kỳ tập lệnh nào được thêm vào cấu hình chỉ được chạy một lần cho mỗi lần chạy, thay vì cho từng tệp được xoay vòng. Vì đường dẫn

      2. sudo nano /etc/logrotate.d/your-app

        9 bao gồm ký tự đại diện

        /var/log/your-app/*.log { daily missingok rotate 14 compress notifempty create 0640 www-data www-data sharedscripts postrotate

        systemctl reload your-app  
        
        endscript }

        0, cấu hình này sẽ khớp với bất kỳ số lượng tệp nhật ký nào trong thư mục

        Output /var/log/apt/term.log { rotate 12 monthly compress missingok notifempty } /var/log/apt/history.log { rotate 12 monthly compress missingok notifempty }

        2. Nếu không có tùy chọn

      3. sudo nano /etc/logrotate.d/your-app

        8, tập lệnh được chỉ định trong

        /var/log/your-app/*.log { daily missingok rotate 14 compress notifempty create 0640 www-data www-data sharedscripts postrotate

        systemctl reload your-app  
        
        endscript }

        ` 3 sẽ chạy mỗi khi logrotate xử lý tệp nhật ký mà không có tùy chọn này.
    • /var/log/your-app/*.log { daily missingok rotate 14 compress notifempty create 0640 www-data www-data sharedscripts postrotate

      systemctl reload your-app  
      
      endscript }

      3 tới

      /var/log/your-app/*.log { daily missingok rotate 14 compress notifempty create 0640 www-data www-data sharedscripts postrotate

      systemctl reload your-app  
      
      endscript }

      5: khối này chứa tập lệnh để chạy sau khi xoay tệp nhật ký. Trong trường hợp này, chúng ta đang tải lại ứng dụng mẫu của mình. Điều này đôi khi cần thiết để ứng dụng của bạn chuyển sang tệp nhật ký mới được tạo. Lưu ý rằng

      /var/log/your-app/*.log { daily missingok rotate 14 compress notifempty create 0640 www-data www-data sharedscripts postrotate

      systemctl reload your-app  
      
      endscript }

      3 chạy trước khi các bản ghi được nén. Quá trình nén có thể mất nhiều thời gian và phần mềm của bạn sẽ chuyển sang tệp nhật ký mới ngay lập tức. Đối với các tác vụ cần chạy sau khi nén nhật ký, hãy sử dụng khối

      /var/log/your-app/*.log { daily missingok rotate 14 compress notifempty create 0640 www-data www-data sharedscripts postrotate

      systemctl reload your-app  
      
      endscript }

      7 thay thế.

    Để lưu và thoát

    1. sudo nano /etc/logrotate.d/your-app

    3, hãy nhấn

    /var/log/your-app/*.log {
      daily
      missingok
      rotate 14
      compress
      notifempty
      create 0640 www-data www-data
      sharedscripts
      postrotate
        systemctl reload your-app
      endscript
    }
    

    9, và khi được nhắc, hãy nhấn

    1. sudo logrotate /etc/logrotate.conf --debug

    0 rồi nhấn

    1. sudo logrotate /etc/logrotate.conf --debug

    1. Bạn có thể kiểm tra tệp cấu hình bằng cách chạy thử:

    1. sudo logrotate /etc/logrotate.conf --debug

    Lệnh này gọi

    1. sudo logrotate /etc/logrotate.conf --debug

    2, trỏ nó đến tệp cấu hình tiêu chuẩn và bật chế độ gỡ lỗi.

    Thông tin sẽ in ra các tệp nhật ký mà Logrotate đang xử lý và nó sẽ làm gì với chúng. Nếu tất cả đều ổn, bạn đã hoàn tất. Công việc Logrotate tiêu chuẩn sẽ chạy mỗi ngày một lần và bao gồm cấu hình mới của bạn.

    Tiếp theo, chúng ta sẽ thử một thiết lập hoàn toàn không sử dụng cấu hình mặc định của Ubuntu.

    Trong ví dụ này, chúng ta có một ứng dụng đang chạy dưới dạng user

    1. sudo logrotate /etc/logrotate.conf --debug

    3, tạo nhật ký được lưu trữ trong

    1. sudo logrotate /etc/logrotate.conf --debug

    4. Chúng ta muốn xoay các nhật ký này hàng giờ, vì vậy chúng ta cần thiết lập điều này bên ngoài cấu trúc

    
    Output
    
    logrotate 3.14.0
        Default mail command:       /usr/bin/mail
        Default compress command:   /bin/gzip
        Default uncompress command: /bin/gunzip
        Default compress extension: .gz
        Default state file path:    /var/lib/logrotate/status
        ACL support:                yes
        SELinux support:            yes
    

    3 được cung cấp bởi Ubuntu.

    Trước tiên, chúng ta sẽ tạo một tệp cấu hình trong thư mục chính của chúng ta. Mở nó trong một trình soạn thảo văn bản:

    1. nano /home/sammy/logrotate.conf

    Sau đó, dán vào cấu hình sau:

    /home/sammy/logrotate.conf

    1. logrotate --version

    0

    Lưu và đóng tập tin. Chúng ta đã gặp tất cả các tùy chọn này trong các bước trước, nhưng hãy tóm tắt: cấu hình này sẽ xoay các tệp hàng giờ, nén và giữ hai mươi bốn nhật ký cũ và tạo một tệp nhật ký mới để thay thế tệp đã xoay.

    Bạn sẽ cần tùy chỉnh cấu hình cho phù hợp với ứng dụng của mình, nhưng đây là một khởi đầu tốt.

    Để kiểm tra xem cấu hình có hoạt động hay không, hãy tạo một tệp nhật ký. Đầu tiên

    1. sudo logrotate /etc/logrotate.conf --debug

    6 vào thư mục chính của user của bạn bằng lệnh

    1. sudo logrotate /etc/logrotate.conf --debug

    7. Sau đó, tạo một thư mục cho các bản ghi bằng lệnh

    1. sudo logrotate /etc/logrotate.conf --debug

    8. Cuối cùng tạo một tệp trống trong thư mục

    1. sudo logrotate /etc/logrotate.conf --debug

    9 bằng lệnh

    1. nano /home/sammy/logrotate.conf

    0. Chạy các lệnh sau để hoàn thành các bước sau:

    1. logrotate --version

    1

    Bây giờ chúng ta có một tệp nhật ký trống ở đúng vị trí, hãy chạy lệnh

    1. sudo logrotate /etc/logrotate.conf --debug

    2.

    Vì nhật ký thuộc sở hữu của

    1. sudo logrotate /etc/logrotate.conf --debug

    3 nên chúng ta không cần sử dụng

    1. nano /home/sammy/logrotate.conf

    3. Tuy nhiên, chúng ta cần chỉ định một tệp trạng thái. Tệp này ghi lại những gì

    1. sudo logrotate /etc/logrotate.conf --debug

    2 đã tìm thấy và bất kỳ hành động nào mà nó đã thực hiện vào lần cuối cùng nó chạy, để nó biết phải làm gì trong lần chạy tiếp theo. Theo dõi trạng thái này được xử lý cho chúng ta khi sử dụng cấu hình

    
    Output
    
    logrotate 3.14.0
        Default mail command:       /usr/bin/mail
        Default compress command:   /bin/gzip
        Default uncompress command: /bin/gunzip
        Default compress extension: .gz
        Default state file path:    /var/lib/logrotate/status
        ACL support:                yes
        SELinux support:            yes
    

    1 mặc định. Tệp trạng thái được lưu trữ trong

    1. nano /home/sammy/logrotate.conf

    6. Vì chúng ta không sử dụng cấu hình mặc định, chúng ta sẽ cần định cấu hình vị trí tệp trạng thái theo cách thủ công.

    Chúng ta sẽ yêu cầu Logrotate đặt tệp trạng thái ngay trong thư mục chính của chúng ta cho ví dụ này. Nó có thể đến bất cứ nơi nào có thể tiếp cận và thuận tiện. Chạy lệnh sau để sử dụng

    1. nano /home/sammy/logrotate.conf

    7 mà bạn đã tạo và ghi lại trạng thái mà logrotate gặp phải:

    1. logrotate --version

    2

    1. logrotate --version

    3

    Cờ

    1. nano /home/sammy/logrotate.conf

    8 sẽ in ra thông tin chi tiết về những gì Logrotate đang làm. Trong trường hợp này, nó không xoay bất cứ thứ gì. Đây là lần đầu tiên Logrotate gặp phải tệp nhật ký này và nó đã có từ 0 giờ nên không nên xoay.

    Nếu chúng ta kiểm tra tệp trạng thái bằng tiện ích

    1. man logrotate

    2, chúng ta sẽ lưu ý rằng Logrotate đã ghi lại một số thông tin về quá trình chạy:

    1. logrotate --version

    4

    1. logrotate --version

    5

    Logrotate ghi nhận các bản ghi mà nó đã nhìn thấy và thời điểm nó xem xét chúng để quay vòng lần cuối. Nếu chúng ta chạy cùng lệnh này một giờ sau đó, nhật ký sẽ được xoay như mong đợi.

    Nếu bạn muốn buộc Logrotate xoay tệp nhật ký khi nó không có, hãy sử dụng cờ

    1. logrotate --version

    00:

    1. logrotate --version

    6

    Điều này rất hữu ích khi kiểm tra

    /var/log/your-app/*.log {
      daily
      missingok
      rotate 14
      compress
      notifempty
      create 0640 www-data www-data
      sharedscripts
      postrotate
        systemctl reload your-app
      endscript
    }
    

    3 và các tập lệnh khác.

    Cuối cùng, chúng ta cần thiết lập một công việc cron để chạy Logrotate mỗi giờ. Mở crontab của user của bạn:

    1. logrotate --version

    7

    Thao tác này sẽ mở một tệp văn bản. Nếu đây là lần đầu tiên bạn sử dụng cron, bạn có thể được nhắc chọn một trình soạn thảo văn bản mặc định. Nếu bạn không có sở thích, chúng tôi khuyên bạn nên sử dụng

    1. sudo nano /etc/logrotate.d/your-app

    3 cho người dùng mới. Có thể có một số nhận xét đã có trong tệp giải thích cú pháp cron. Di chuyển con trỏ xuống một dòng trống mới ở cuối tệp và thêm phần sau:

    1. logrotate --version

    8

    Nhiệm vụ này sẽ chạy vào phút thứ 14 hàng giờ, hàng ngày. Nó chạy gần giống lệnh

    1. sudo logrotate /etc/logrotate.conf --debug

    2 mà chúng ta đã chạy trước đó, mặc dù chúng ta đã mở rộng

    1. sudo logrotate /etc/logrotate.conf --debug

    2 thành đường dẫn đầy đủ của nó là

    1. logrotate --version

    05 để an toàn. Bạn nên sử dụng các đường dẫn đầy đủ khi viết cron jobs. Để tìm hiểu thêm về cron, bạn có thể xem lại các hướng dẫn khác của chúng tôi.

    Lưu file và thoát. Thao tác này sẽ cài đặt crontab và tác vụ của chúng ta sẽ chạy theo lịch trình đã chỉ định.

    Nếu chúng ta truy cập lại thư mục nhật ký của mình trong khoảng một giờ, chúng ta sẽ tìm thấy tệp nhật ký đã xoay và nén

    1. logrotate --version

    06 (hoặc

    1. logrotate --version

    07 nếu bạn chạy Logrotate với cờ

    1. logrotate --version

    00).

    Trong hướng dẫn này, chúng ta đã xác minh phiên bản Logrotate của mình, khám phá cấu hình Ubuntu Logrotate mặc định và thiết lập hai loại cấu hình tùy chỉnh khác nhau. Để tìm hiểu thêm về dòng lệnh và các tùy chọn cấu hình có sẵn cho Logrotate, bạn có thể đọc trang hướng dẫn sử dụng của nó bằng cách chạy

    
    Output
    
    /var/log/apt/term.log {
      rotate 12
      monthly
      compress
      missingok
      notifempty
    }
    /var/log/apt/history.log {
      rotate 12
      monthly
      compress
      missingok
      notifempty
    }
    

    1 trong thiết bị đầu cuối của bạn hoặc bằng cách truy cập tài liệu trực tuyến.