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 "日志清理完成。"
加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。