banner
xingli

xingli

猫娘爱好者

linux 日誌清理腳本

linux 長期使用過程中可能產生很大用不到的日誌
這對於存儲很少的 vps 來說很致命 當日誌塞滿硬碟伺服器的各種服務將無法正常啟動
這是我寫的一個日誌清理腳本 可以清理無用日誌

#!/bin/bash

# 定義日誌目錄和大小限制
LOG_DIR="/var/log"
SIZE_LIMIT="20M"

# 函數:刪除所有壓縮的日誌文件
delete_compressed_logs() {
    echo "刪除所有壓縮的日誌文件..."
    find "$LOG_DIR" -type f \( -name "*.gz" -o -name "*.xz" -o -name "*.zip" \) -exec rm -f {} \;
}

# 函數:刪除大於20MB的日誌文件
delete_large_logs() {
    echo "刪除大於 $SIZE_LIMIT 的日誌文件..."
    find "$LOG_DIR" -type f -name "*.log" -size +"$SIZE_LIMIT" -exec rm -f {} \;
}

# 函數:清空關鍵日誌文件
truncate_critical_logs() {
    echo "清空關鍵日誌文件..."
    > "$LOG_DIR/wtmp"
    > "$LOG_DIR/btmp"
    > "$LOG_DIR/lastlog"
}

# 函數:清理 journal 日誌
clean_journal() {
    echo "清理 journal 日誌..."
    # journalctl --vacuum-time=7d
    # 或者通過大小限制來清理
    journalctl --vacuum-size=100M
}

# 函數:顯示磁碟使用情況,並以黃色顯示容量信息
report_disk_usage() {
    echo -e "\n目前的磁碟使用情況:"
    du -sh "$LOG_DIR" | awk '{print "\033[33m" $1 "\033[0m", $2}'
}

# 執行清理操作
report_disk_usage

delete_compressed_logs
delete_large_logs
truncate_critical_logs
clean_journal

report_disk_usage

echo "日誌清理完成。"
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。