Logrotate là một công cụ dòng lệnh của Linux để quản lý các mục nhật ký. Công cụ này giúp quản trị viên thực hiện các loại tác vụ khác nhau trên các mục nhật ký như giới hạn các tệp nhật ký được xoay, nén các tệp nhật ký được xoay, xóa các tệp nhật ký không cần thiết, thực thi tập lệnh shell cụ thể dựa trên các tệp nhật ký, v.v. lệnh “logrorate” để quản lý tệp nhật ký theo nhiều cách khác nhau được hiển thị trong hướng dẫn này bằng nhiều ví dụ.
Kiểm tra phiên bản logrotate đã cài đặt
Lệnh “logrotate” được cài đặt theo mặc định trong phiên bản mới của hệ điều hành Ubuntu. Chạy lệnh sau để kiểm tra phiên bản đã cài đặt của lệnh “logrotate”:
$ đăng nhập --phiên bản
Theo mặc định, các mục nhật ký của các ứng dụng khác nhau được lưu trữ trong thư mục “/var/log”. Nội dung tương tự sau đây sẽ xuất hiện nếu bạn kiểm tra nội dung của thư mục.
$ ls / đã từng là / nhật ký
Đặt cấu hình “Logrotate”
Giá trị cài đặt | Mục đích |
hàng ngày/hàng tuần/hàng tháng/hàng năm | Nó xác định khoảng thời gian để xoay các bản ghi. |
xoay số | Nó xác định số lượng tệp sẽ được lưu giữ trước khi xóa các tệp nhật ký cũ. |
nén | Nó được sử dụng để nén các tập tin nhật ký. |
néncmd | Nó được sử dụng để thiết lập lệnh “nén”. Gzip là lệnh mặc định. |
giải néncmd | Nó được sử dụng để thiết lập lệnh “giải nén”. Gunzip là lệnh mặc định. |
nén trễ | Nó được sử dụng để trì hoãn quá trình nén các tệp nhật ký. |
thông báo trống | Nó được sử dụng để không xoay tập tin trống. |
tôi đang thiếu | Nếu được đặt, sẽ không có lỗi nào được tạo ra đối với các tệp nhật ký bị thiếu. |
kích cỡ | Nó được sử dụng để đặt giới hạn bắt đầu xoay các tệp nhật ký. |
nội dung ngày tháng | Nó được sử dụng để thêm giá trị ngày làm hậu tố của tệp xoay. |
sao chép | Nó được sử dụng để tạo một bản sao của tập tin gốc. |
được xoay trước | Nó được sử dụng để chạy tập lệnh trước khi xoay tệp nhật ký. |
luân phiên | Nó được sử dụng để chạy tập lệnh sau khi xoay tệp nhật ký. |
tạo nên | Nó được sử dụng để tạo các tệp nhật ký với quyền root. |
Cú pháp:
Cú pháp của lệnh “logrotate” được đưa ra như sau:
đăng nhập [ LỰA CHỌN ] config_file_path
Các loại tùy chọn khác nhau có thể được sử dụng cho các mục đích khác nhau bằng lệnh “logrotate”.
Tùy chọn đăng nhập
Một số tùy chọn hữu ích của lệnh “logrotate” được đề cập sau đây:
-f, –lực lượng | Nó được sử dụng để thực hiện chuyển động quay mạnh mẽ khi cần thiết. |
-d, –debug | Nó được sử dụng để kích hoạt chế độ gỡ lỗi trong quá trình xoay. |
-m, –mail |
Nó được sử dụng để gửi email trong quá trình quay vòng. |
-s, –state |
Nó được sử dụng cho các tập tin trạng thái thay thế. |
-cách sử dụng | Nó được sử dụng để in thông tin sử dụng. |
-?, -giúp đỡ | Nó được sử dụng để in các tin nhắn trợ giúp. |
-v, –verbose | Nó được sử dụng để in ở chế độ dài dòng. |
Tệp cấu hình logrotate
Tệp cấu hình logrotate chính được đặt tại vị trí “/etc/logrotate.conf”. Chạy lệnh sau để mở tệp trong trình chỉnh sửa nano:
$ nano / vân vân / logrotate.confCài đặt mặc định của lệnh “logrotate” được hiển thị trong tệp “logrotate.conf”. Lệnh “include” được sử dụng trong tệp để truy xuất cấu hình nằm trong thư mục “/etc/logrotate.d”.
Ví dụ 1: Tạo tệp cấu hình logrotate đơn giản
Tạo một tệp nhật ký mẫu có tên “/var/log/test.log” với dữ liệu nhật ký mẫu. Chạy lệnh sau để mở trình soạn thảo nano nhằm tạo tệp “logrotate.conf” mới trong vị trí thư mục “/etc/tmp”. Tạo thư mục “/tmp” với quyền root nếu nó chưa được tạo trước đó.
$ nano / vân vân / tmp / logrotate.confThêm nội dung sau vào tệp cho tệp “/var/log/test.log”. Theo cài đặt, tệp “test.log” sẽ được luân chuyển hàng ngày nếu kích thước tệp vượt quá 5K:
/ đã từng là / nhật ký / kiểm tra.log {hằng ngày
kích cỡ 5K
của anh ấy quản trị viên gốc
}
Chạy lệnh sau để kiểm tra kích thước của tệp nhật ký:
$ ls -l / đã từng là / nhật ký / kiểm tra.logChạy lệnh “logrotate” sau khi tạo tệp cấu hình.
$ sudo đăng nhập / vân vân / tmp / logrotate.confChạy lại lệnh sau để kiểm tra kích thước của tệp nhật ký sau khi thực hiện lệnh “logrotate”:
$ ls -l / đã từng là / nhật ký / kiểm tra.logKích thước của tệp “test.log” là 1K+. Vì vậy, không có thao tác xoay nào được thực hiện dựa trên cài đặt cấu hình.
Thay đổi giá trị kích thước thành 1K trong tệp “/etc/tmp/logrotate.conf” và chạy lại lệnh “ls” để kiểm tra kích thước tệp của “/var/log/test.log”. Theo đầu ra, tệp nhật ký bị xoay và xóa do vượt quá giới hạn kích thước.
Ví dụ 2: Sử dụng Logrotate Copytruncate
Tạo hoặc sửa đổi tệp “/etc/tmp/logrotate.conf” với các cài đặt sau để hiển thị việc sử dụng copytruncate. Theo cài đặt mới, logrotate tạo một bản sao của tệp gốc bằng cách đặt kích thước tệp gốc về 0.
/ đã từng là / nhật ký / kiểm tra.log {quay 5
kích cỡ 1k
sao chép
của anh ấy quản trị viên gốc
}
Chạy lệnh sau để kiểm tra kích thước của tệp “test.log”:
$ ls -l / đã từng là / nhật ký / kiểm tra.logChạy lệnh “logrotate” sau khi tạo tệp cấu hình.
$ sudo đăng nhập / vân vân / tmp / logrotate.confChạy lại lệnh sau để kiểm tra kích thước của tệp “test.log” sau khi thực hiện lệnh “logrotate”:
$ ls -l / đã từng là / nhật ký / kiểm tra.logKích thước tệp gốc trở thành 0 sau khi thực hiện lệnh “logrotate” cho cài đặt copytruncate.
Ví dụ 3: Sử dụng tính năng nén Logrotate
Tạo hoặc sửa đổi tệp “/etc/tmp/logrotate.conf” với các cài đặt sau để hiển thị cách sử dụng tính năng nén. Theo cài đặt mới, logrotate tạo một tệp nén của tệp gốc.
/ đã từng là / nhật ký / kiểm tra.log {quay 5
kích cỡ 1k
nén
tạo nên 770 quản trị viên gốc
}
Chạy lệnh sau để kiểm tra danh sách các tập tin và thư mục của “/var/log”:
$ ls / đã từng là / nhật ký /Chạy lệnh “logrotate” sau khi tạo tệp cấu hình.
$ sudo đăng nhập / vân vân / tmp / logrotate.confChạy lại lệnh sau để kiểm tra danh sách các tập tin và thư mục của “/var/log”:
$ ls / đã từng là / nhật ký /Tệp nén của tệp “test.log” được tạo với tên “test.log.1.gz” và tệp gốc sẽ bị xóa.
Ví dụ 4: Sử dụng Logrotate Dateext
Tạo hoặc sửa đổi tệp “/etc/tmp/logrotate.conf” với các cài đặt sau để hiển thị việc sử dụng dateext. Theo cài đặt mới, logrotate tạo tệp nén của tệp gốc có giá trị ngày.
đã từng là / nhật ký / kiểm tra.log {của anh ấy quản trị viên gốc
quay 5
kích cỡ 1k
nén
tạo nên 770 quản trị viên gốc
nội dung ngày tháng
}
Chạy lệnh “logrotate” sau khi tạo tệp cấu hình.
$ sudo đăng nhập / vân vân / tmp / logrotate.confChạy lệnh sau để kiểm tra danh sách các tập tin và thư mục của “/var/log”:
$ ls -l / đã từng là / nhật ký /Tệp nén của tệp “test.log” được tạo với tên “test.log.20240129.gz” và tệp gốc sẽ bị xóa.
Ví dụ 5: Sử dụng Logrotate Maxage
Tạo hoặc sửa đổi tệp “/etc/tmp/logrotate.conf” với các cài đặt sau để hiển thị việc sử dụng mức tối đa. Theo cài đặt, logrotate giữ năm mục nhật ký nếu kích thước của tệp nhật ký vượt quá 1K sau một ngày.
/ đã từng là / nhật ký / kiểm tra.log {của anh ấy quản trị viên gốc
quay 5
kích cỡ 1k
nén
tối đa 1
}
Chạy lệnh “logrotate” sau để lưu trữ kết quả đầu ra trong một tệp nhật ký khác có tên “out.log”:
$ sudo đăng nhập -S = / đã từng là / nhật ký / out.log / vân vân / tmp / logrotate.confTheo kết quả đầu ra sau, tệp “out.log” được tạo sau khi thực hiện lệnh “logrotate”:
Ví dụ 6: Sử dụng Logrotate Missingok
Tạo hoặc sửa đổi tệp “/etc/tmp/logrotate.conf” với các cài đặt sau. Ở đây, tệp nhật ký “testfile.log” không tồn tại trong thư mục “/var/log”.
/ đã từng là / nhật ký / testfile.log {của anh ấy quản trị viên gốc
quay 5
kích cỡ 1k
nén
}
Một thông báo lỗi được in sau khi thực hiện lệnh “logrotate”.
Thêm cài đặt “missingok” vào tệp cấu hình logrotate và chạy lại lệnh “logrotate”. Không có lỗi nào được in đối với tệp nhật ký bị thiếu.
Ví dụ 7: Sử dụng Logrotate Prerotate
Tạo một tệp Bash có tên “test.sh” với đoạn mã sau để in một thông báo đơn giản. Tệp được sử dụng trong ví dụ logrotate này để hiển thị việc sử dụng prerotate trong tệp cấu hình logrotate.
test.sh#!/bin/bash
tiếng vọng 'ví dụ về logrotate...'
Sau khi tạo tệp, hãy chạy lệnh sau để đặt quyền thực thi tệp này cho tất cả người dùng:
$ chmod a+x / trang chủ / sự hiểu biết / test.shBây giờ, hãy tạo hoặc sửa đổi tệp “/etc/tmp/logrotate.conf” với các cài đặt sau. Theo cài đặt, logrotate giữ năm mục nhật ký nếu kích thước của tệp nhật ký vượt quá 1K và tệp “test.sh” được thực thi trước khi xoay.
/ đã từng là / nhật ký / kiểm tra.log {của anh ấy quản trị viên gốc
quay 5
kích cỡ 1k
được xoay trước
/ trang chủ / sự hiểu biết / test.sh
phần cuối
}
Đầu ra của tệp “test.sh” được hiển thị sau khi thực hiện lệnh “logrotate”:
Phần kết luận
Các cách sử dụng khác nhau của lệnh “logrotate” được hiển thị trong hướng dẫn này bằng nhiều ví dụ sẽ giúp người dùng Linux biết cách sử dụng lệnh và quản lý tệp nhật ký đúng cách.