Lệnh logrotate trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh logrotate của Linux để quản lý các file log trên hệ thống của bạn. Logrotate là một tiện ích tự động xoay vòng, nén và xóa các file log cũ, giúp duy trì sức khỏe và hiệu suất của hệ thống. Đầu tiên, bạn sẽ khám phá cách sử dụng cơ bản của lệnh logrotate, bao gồm kiểm tra phiên bản đã cài đặt và hiểu cấu hình mặc định. Sau đó, bạn sẽ cấu hình logrotate để quản lý các log của máy chủ web Apache, tùy chỉnh các cài đặt xoay vòng để đáp ứng các nhu cầu cụ thể của bạn.

Giới thiệu về Lệnh Logrotate

Trong bước này, bạn sẽ tìm hiểu về lệnh logrotate trong Linux. Logrotate là một tiện ích giúp quản lý các file log bằng cách tự động xoay vòng, nén và xóa các file log cũ. Điều này rất quan trọng để duy trì sức khỏe và hiệu suất của hệ thống của bạn, vì các file log có thể nhanh chóng chiếm một lượng lớn dung lượng đĩa nếu không được quản lý đúng cách.

Đầu tiên, hãy kiểm tra phiên bản logrotate đã cài đặt trên hệ thống của bạn:

sudo logrotate --version

Ví dụ đầu ra:

logrotate 3.18.1

Tiếp theo, hãy khám phá cách sử dụng cơ bản của lệnh logrotate. Lệnh logrotate đọc file cấu hình /etc/logrotate.conf và bất kỳ file cấu hình nào được tìm thấy trong thư mục /etc/logrotate.d/ để xác định cách xoay vòng các file log.

Để xem cấu hình mặc định, bạn có thể chạy:

sudo cat /etc/logrotate.conf

Thao tác này sẽ hiển thị cho bạn các cài đặt mặc định cho việc xoay vòng log, chẳng hạn như tần suất xoay vòng, số lượng file log cũ cần giữ và phương pháp nén được sử dụng.

Bạn cũng có thể xoay vòng các file log thủ công bằng lệnh logrotate. Ví dụ: để xoay vòng log truy cập Apache, bạn có thể chạy:

sudo logrotate /etc/logrotate.d/apache2

Thao tác này sẽ xoay vòng ngay lập tức file log truy cập Apache, bất kể lịch trình đã định cấu hình.

Cấu hình Logrotate cho Các Log của Máy chủ Web Apache

Trong bước này, bạn sẽ tìm hiểu cách cấu hình logrotate để quản lý các log của máy chủ web Apache.

Đầu tiên, hãy cài đặt máy chủ web Apache:

sudo apt-get update
sudo apt-get install -y apache2

Sau khi quá trình cài đặt hoàn tất, bạn có thể kiểm tra các file log Apache mặc định:

ls -l /var/log/apache2/

Ví dụ đầu ra:

-rw-r--r-- 1 root root   0 Apr 26 12:00 access.log
-rw-r--r-- 1 root root   0 Apr 26 12:00 error.log

Bây giờ, hãy tạo một file cấu hình logrotate tùy chỉnh cho các log của Apache:

sudo nano /etc/logrotate.d/apache2

Thêm cấu hình sau:

/var/log/apache2/*.log {
    daily
    missingok
    rotate 7
    compress
    delaycompress
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
        if /etc/init.d/apache2 status > /dev/null; then
            /etc/init.d/apache2 reload > /dev/null
        fi
    endscript
}

Cấu hình này sẽ:

  • Xoay vòng các log truy cập và log lỗi của Apache hàng ngày
  • Giữ 7 ngày file log
  • Nén các file log đã xoay vòng
  • Tạo các file log mới với các quyền được chỉ định
  • Khởi động lại dịch vụ Apache sau khi xoay vòng để đảm bảo các file log mới được sử dụng

Để kiểm tra cấu hình, bạn có thể xoay vòng các log thủ công:

sudo logrotate /etc/logrotate.d/apache2

Kiểm tra lại thư mục log để xem các file đã xoay vòng:

ls -l /var/log/apache2/

Ví dụ đầu ra:

-rw-r--r-- 1 root root   0 Apr 26 12:00 access.log
-rw-r--r-- 1 root root   0 Apr 26 12:00 error.log
-rw-r--r-- 1 root root   0 Apr 26 12:01 access.log.1.gz
-rw-r--r-- 1 root root   0 Apr 26 12:01 error.log.1.gz

Tùy chỉnh Cấu hình Logrotate cho Các File Log Cụ thể

Trong bước này, bạn sẽ tìm hiểu cách tùy chỉnh cấu hình logrotate cho các file log cụ thể trên hệ thống của bạn.

Hãy tạo một file log tùy chỉnh và cấu hình logrotate để quản lý nó.

Đầu tiên, tạo một file log mẫu:

sudo touch /var/log/custom.log
sudo chmod 644 /var/log/custom.log

Bây giờ, tạo một file cấu hình logrotate mới cho log tùy chỉnh:

sudo nano /etc/logrotate.d/custom-logs

Thêm cấu hình sau:

/var/log/custom.log {
    weekly
    rotate 4
    compress
    delaycompress
    notifempty
    create 644 root adm
}

Cấu hình này sẽ:

  • Xoay vòng file custom.log hàng tuần
  • Giữ 4 tuần file log
  • Nén các file log đã xoay vòng
  • Tạo các file log mới với các quyền được chỉ định

Để kiểm tra cấu hình, bạn có thể xoay vòng các log thủ công:

sudo logrotate /etc/logrotate.d/custom-logs

Kiểm tra thư mục log để xem các file đã xoay vòng:

ls -l /var/log/

Ví dụ đầu ra:

-rw-r--r-- 1 root adm     0 Apr 26 12:00 custom.log
-rw-r--r-- 1 root adm     0 Apr 19 12:00 custom.log.1.gz
-rw-r--r-- 1 root adm     0 Apr 12 12:00 custom.log.2.gz
-rw-r--r-- 1 root adm     0 Apr  5 12:00 custom.log.3.gz
-rw-r--r-- 1 root adm     0 Mar 29 12:00 custom.log.4.gz

Bạn cũng có thể tùy chỉnh cấu hình logrotate cho các file log khác trên hệ thống của bạn, chẳng hạn như các log dành riêng cho ứng dụng hoặc các log hệ thống, bằng cách tạo các file cấu hình bổ sung trong thư mục /etc/logrotate.d/.

Tóm tắt

Trong lab này, bạn đã tìm hiểu về lệnh logrotate trong Linux, là một tiện ích giúp quản lý các file log bằng cách tự động xoay vòng, nén và xóa các file log cũ. Bạn đã khám phá cách sử dụng cơ bản của lệnh logrotate, bao gồm kiểm tra phiên bản, xem cấu hình mặc định và xoay vòng các file log thủ công. Ngoài ra, bạn đã cấu hình logrotate để quản lý các log của máy chủ web Apache, tạo một file cấu hình logrotate tùy chỉnh và hiểu các tùy chọn khác nhau có sẵn cho việc xoay vòng log.

400+ câu lệnh phổ biến trong Linux