首页 > 系统相关 >Shell自动化日志维护脚本

Shell自动化日志维护脚本

时间:2023-09-01 14:23:57浏览次数:44  
标签:脚本 文件大小 Shell watch file 自动化 日志 size

简介:

系统日志对于了解操作系统的运行状况、故障排除和性能分析至关重要。然而,长期积累的日志文件可能变得庞大,影响系统性能。在这篇文章中,我们将介绍一个自动化的解决方案,使用 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

 

标签:脚本,文件大小,Shell,watch,file,自动化,日志,size
From: https://www.cnblogs.com/mefj/p/17671763.html

相关文章

  • Linux tcp连接数监控实战shell脚本
     tcp连接数监控可用于存储维护中前端业务访问量的统计:使用命令netstat-anpProto:表示协议类型,Recv-Q:表示收包数量, Send-Q:表示发包数量实战示例:#!/bin/bash#thisscriptisusedforcountthequantityofsessionoverstocklog=/ap/log/session_overstock_count.loglog......
  • 18 个一线工作中常用Shell 脚本(转)
    1、检测两台服务器指定目录下的文件一致性#!/bin/bash######################################检测两台服务器指定目录下的文件一致性######################################通过对比两台服务器上文件的md5值,达到检测一致性的目的dir=/data/webb_ip=192.168.88.10#将指......
  • Linux 主机磁盘繁忙度监控实战shell脚本
    Linux磁盘繁忙度是指磁盘的使用率和活动水平。可以通过一些工具来监测磁盘繁忙度,如iostat、iotop、sar等。其中,iostat是一个常用的工具,可以提供关于磁盘活动的详细统计信息。通过运行命令iostat-x1可以实时监测磁盘的使用情况,其中%util列就表示磁盘的繁忙度,数值越高表......
  • .NET 日志系统-3 结构化日志和集中日志服务
    .NET日志系统-3结构化日志和集中日志服务系列文章认识.NET日志系统https://www.cnblogs.com/ZYPLJ/p/17663487.html.NET认识日志系统-2https://www.cnblogs.com/ZYPLJ/p/17667970.html结构化日志结构化日志比普通文本更利于日志的分析,结构化日志的格式为json格......
  • 手写raft(三) 实现日志压缩
    手写raft(三)实现日志压缩在上一篇博客中MyRaft实现了日志复制功能,按照计划接下来需要实现日志压缩。手写raft(一)实现leader选举手写raft(二)实现日志复制1.什么是raft日志压缩?我们知道raft协议是基于日志复制的协议,日志数据是raft的核心。但随着raft集群的持续工作,ra......
  • 万人在线,一站式自动化运维 SysOM 3.0重磅发布!龙蜥社区系统运维 MeetUp 回顾来了
    8月12日,由龙蜥社区系统运维SIG主办,乘云数字协办的,主题为“观测,让运维更简单!”的系统运维MeetUp于杭州圆满结束。来自乘云数字、谐云科技、乐维、云杉网络、擎创科技、观测云、阿里云以及浙江大学等众多厂商及高校的11位专家和教授,分享了精彩主题演讲,带来了前沿技术见解。......
  • Oracle EBS查看请求日志报404 not found错误,FNDWRR.exe资源访问不存在
    问题描述如上图中,查看请求时,点击“查看日志”按钮后,正常浏览器会打开一个页面,可以看到这个请求的日志,但出现问题后,浏览器会报404错误,如下图解决方法cd$EBS_ORACLE_HOME/common/scripts实际目录:(/oracle/PROD/fs1/FMW_Home/Oracle_EBS-app1/common/scripts)请根据自己的目......
  • shell数组
    数组概述1数组中可以存放多个值。BashShell只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与PHP类似)。2与大部分编程语言类似,数组元素的下标由0开始。3Shell数组用括号来表示,元素用”空格”符号分割开,语法格式如下:4my_array=(value1value2…value......
  • Shell脚本入门
    一、Shell简介Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合。  Shell可以直接使用在win/Unix/Linux上面,并且可以调用大量系统内部的功能来解释执行程序,如果熟练掌握Shell脚本,可以让我们操作计算机......
  • 阿里云sls日志服务使用
    使用开启sls服务,需要充值创建project创建logstore给sls服务创建一个RAM账号,并分配权限给账号创建accessKeySecret秘钥对logstore下日志的字段创建索引(创建索引的字段才能搜索)通过阿里提供的sdk向logstore发送日志<dependency><groupId>com.aliyun.openservices</gr......