Script tự động xoá log khi sử dụng CyberPanel

CyberPanel là Panel yêu thích của tôi trước đây, dù hiện tại tôi không thích chung so với trước kia nhưng vẫn có rất nhiều dự án tôi chạy với Panel này và có 1 vấn đề không kém quan trọng đó là log không được dọn dẹp định kỳ thì chúng phình to và chiếm đáng kể ổ cứng, nhiều VPS đầy cả ổ cứng vì log nên bài viết này tôi sẽ hướng dẫn bạn cách để lên lịch cron để xoá chúng định kỳ.

Trên CyberPanel sử dụng OpenLiteSpeed, log là các tệp ghi lại hoạt động của server, bao gồm thông tin về truy cập của người dùng, lỗi phát sinh, và các sự kiện khác. Các loại log chính mà OpenLiteSpeed sử dụng thường bao gồm:

  • Access Log: Ghi lại tất cả các yêu cầu HTTP mà server nhận được.
  • Error Log: Ghi lại các lỗi và cảnh báo mà server gặp phải trong quá trình hoạt động.

Vị trí của các log file

Các log file thường nằm ở các vị trí sau trên server của bạn:

1. Log của LiteSpeed Server Error

Access Log: /usr/local/lsws/logs/access.log
Error Log: /usr/local/lsws/logs/error.log

2. CyberPanel Main Log

/home/cyberpanel/error-logs.txt

3. Email Logs

/var/log/maillog

4. FTP Logs

/var/log/messages

5. ModSecurity Audit Logs

/usr/local/lsws/logs/auditmodsec.log

Ngoài ra, mỗi website (virtual host) cũng có thể có log riêng của nó. Những log này thường được lưu trữ trong thư mục của từng virtual host.

Xóa Log Trên CyberPanel

Để xóa các file log, bạn có thể tạo ra 1 script như sau và đặt lịch cho chúng chạy định kỳ mỗi tuần.

Tạo 1 file clearlog.sh ở thư mục /home

cd /home/
nano clearlog.sh

Sau đó dán vào file clearlog.sh ở trình soạn thảo nano.

#!/bin/bash
# This script clears logs and cache for OpenLiteSpeed and CyberPanel.
# It is designed to run weekly using cron.

LOGFILE="/var/log/cyberpanel_log_cleaner.log"

# Function to log activity
log_activity() {
    echo "$(date +"%Y-%m-%d %H:%M:%S") - $1" >> "$LOGFILE"
}

# Clear all logs of OpenLiteSpeed
if [ -d "/usr/local/lsws/logs" ]; then
    rm -rf /usr/local/lsws/logs/*
    log_activity "Cleared OpenLiteSpeed logs."
else
    log_activity "Directory /usr/local/lsws/logs not found."
fi

# Clear OpenLiteSpeed cache folder
if [ -d "/usr/local/lsws/cachedata" ]; then
    rm -rf /usr/local/lsws/cachedata
    log_activity "Cleared OpenLiteSpeed cache."
else
    log_activity "Directory /usr/local/lsws/cachedata not found."
fi

# Remove old CyberPanel versions
rm -rf /usr/local/*.tar.gz
log_activity "Removed old CyberPanel versions."

# Clear other logs
rm -f /home/cyberpanel/switchLSWSStatus
rm -f /home/cyberpanel/stderr.log
rm -f /home/cyberpanel/error-logs.txt

log_activity "Cleared miscellaneous CyberPanel logs."

log_activity "Log cleanup completed."

Tiếp theo bạn cho phép script này có thể khởi chạy với lệnh: chmod +x /home/clearlog.sh

Bây giờ bạn có thể chạy lệnh sau để xoá log ngay tức thì

sh /home/logscleaner.sh

Lênh lịch để chúng chạy định kỳ, tuỳ theo yêu cầu mỗi người mà set định kỳ cho phù hợp nhé.

crontab -e

Sau đó bạn nhập 1 trong các tuỳ chọn chạy hàng ngày, hàng tuần hoặc hàng tháng vào là được.

Chạy hàng ngày

0 0 * * * /home/clearlog.sh > /dev/null 2>&1

Chạy hàng tuần

0 0 * * 0 /home/clearlog.sh > /dev/null 2>&1

Chạy hàng tháng

0 0 1 * * /home/clearlog.sh > /dev/null 2>&1

Kết luận

Ở trên là 1 số kiến thức về log trên CyberPanel và script giúp bạn xoá log khi sử dụng bảng điều khiển CyberPanel 1 cách nhanh chóng, bạn có thể set để chúng chạy định kỳ để đảm bảo log không chiếm quá nhiều không gian.

Xin cảm ơn.

5/5 - (81 votes)

donate Nếu bạn thấy bài viết có ích bạn có thể donate cho team hoặc chia sẻ bài viết này. Ngoài ra bạn có thể yêu cầu thêm bài viết tại đây
Đã copy
user

Yêu thích Võ thuật và Công nghệ thông tin, thích viết và chia sẽ về 2 lĩnh vực này thế thôi :D

Bài viết liên quan