Shell自动化日志维护脚本

简介:

系统日志对于了解操作系统的运行状况、故障排除和性能分析至关重要。然而,长期积累的日志文件可能变得庞大,影响系统性能。在这篇文章中,我们将介绍一个自动化的解决方案,使用 Bash 脚本来监控和维护系统日志文件,以确保它们的大小合理,避免磁盘爆满,并保持内容的整洁和高效。

问题背景:

在使用ELK日志收集海量日志时,服务器系统里日志文件会随着时间变的越来越大,如果不定时清理旧数据,长期下去会导致磁盘爆满影响系统运行。

脚本原理:

使用Bash 脚本遍历循环检查日志文件夹里所有文件大小,超过设定阈值就自动清空。

定时任务调度:

使用 crontab 定时任务,将脚本定期执行,确保日志维护持续进行。

crontab -e
0 0 * * * /usr/local/scripts/monitor_log.sh

注意事项: 该脚本执行时间不可以低于日志文件大小最小值,间隔尽可能长,例如每隔一天执行一次。

脚本如下

#!/bin/bash

# 指定要监视日志的文件夹
watch_folder="/var/log/zccpe"

# 阈值文件大小(500M)
threshold_size=$((500*1024*1024)) # 500M in bytes

while true; do
    # 获取文件夹下所有文件
    files=("$watch_folder"/*)

    for file_to_watch in "${files[@]}"; do
        if [ -f "$file_to_watch" ]; then
            # 获取文件大小(以字节为单位)
            file_size=$(wc -c < "$file_to_watch")

            if [ "$file_size" -ge "$threshold_size" ]; then
                # 当文件大小达到或超过阈值时,删除前1天的行
                sed -i '1,691200d' "$file_to_watch"
            fi
        fi
    done
    break # 退出循环
    # 休眠一段时间再次检查(例如,每小时检查一次)
    #sleep 86400 # 3600秒 = 1小时
done
相关推荐
mannymu1 分钟前
前端AI入门之路(一)
前端
日升_rs3 分钟前
Chrome 134 版本新特性
前端·chrome·浏览器
前端卧龙人4 分钟前
前端如何最小化重绘和回流
前端
南蓝5 分钟前
【React】React 19 新特性
前端
银之夏雪6 分钟前
深入理解 GPU 渲染加速与合成层(Composite Layers)
前端·javascript·浏览器
机巧咸鱼不会受伤7 分钟前
为什么浏览器的渲染进程不适用于多个线程来处理
前端·浏览器
前端日常开发7 分钟前
轻松合并远端两个Commit,代码历史秒变整洁!
前端
Au_ust7 分钟前
React:类组件(上)
前端·javascript·react.js
前端日常开发7 分钟前
前端并发请求太多?教你几招轻松搞定!
前端
myyyl8 分钟前
Javascript中哈希表的实现
前端·算法·面试