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
相关推荐
饼饼饼10 分钟前
React19 新手指南:JSX 没那么难,用好这几条规则就够了
前端·javascript·react.js
想吃火锅100510 分钟前
【前端手撕】new
前端
小小小小宇17 分钟前
AI大背景下端到端界面测试
前端
云计算磊哥@24 分钟前
运维开发宝典030-MySQL06数据库运维阶段总结
运维·数据库·运维开发
小小小小宇25 分钟前
前端端到端界面测试全解析与应用
前端
去伪存真30 分钟前
如何将没有字幕的英文视频转换成中文视频?
前端·pytorch·llm
鼎讯信通30 分钟前
性能可拓展+功能一体化 走近 TXMN-BLG1 信号模拟设备
运维·能源·信息与通信
Coisinier36 分钟前
RHCE中shell脚本基础(磁盘剩余空间监控,Web 服务状态检查,curl 访问 Web 服务并返回状态)
linux·运维·服务器·前端·nginx·操作系统
糖果店的幽灵38 分钟前
软件测试接口测试从入门到精通:Python接口自动化 - pytest测试框架
软件测试·python·功能测试·自动化·pytest·接口测试
lion_zjg43 分钟前
Nextcloud + Collabora CODE 离线包部署安装
运维·服务器