专栏首页运维ABC生产环境日志清理脚本

生产环境日志清理脚本

一、需求

生产上有40多个微服务部署的应用,每个应用都会产生日志,随着时间的增长,日志量不断增大,现需要清理。有两个重要的应用日志需保留90天,其它应用保留20天。

二、模拟产生日志文件

[root@ansible-awx ~]# more file_create.sh 
#/bin/bash
for k in {1..10}
do
  mkdir -p /tmp/file_log/log_dir"$k"
  for i in {03..06}
  do
    for j in {01..30}
    do 
      touch -mt 2020"$i""$j"0000 /tmp/file_log/log_dir"$k"/file_log_2020-"$i"-"$j".log
    done
  done
done

在/tmp/file_log目录新建log_dir1--log_dir10共10个目录,每个目录下生成3月到6月的日志文件;日志的创建时间和文件名时间后缀相同。

文件生成时间模拟生产日志文件时间。

三、清理脚本

#!/bin/bash

Days1=20
Days2=90

log_directory1=/tmp/file_log
log_directory2=/tmp/file_log/log_dir1
log_directory3=/tmp/file_log/log_dir2

#删除除log_dir1和log_dir2的日志,保留期限为Days1
find $log_directory1 \( -path $log_directory2 -o -path $log_directory3 \)  -prune -o -type f -mtime +$Days1  -exec rm {} \;

#删除log_dir1和log_dir2的日志,保留期限为Days2
find $log_directory2 -type f -mtime +$Days2 -exec rm {} \;
find $log_directory3 -type f -mtime +$Days2 -exec rm {} \;

清理脚本原理:使用find查找指定目录($log_directory)下所有日志文件(-type f),有时会去除不需要的目录"\( -path \$log_directory2 -o -path \$log_directory3 \)",再按照文件生成日期和时间参数(-mtime \$Day)来清除(exec rm {} \)

清理脚本执行前每个日志目录log_dir有121个日志文件,执行完清理脚本后对应的减少。

四、定时任务

将脚本部署为定时任务,每天零点定时执行:

[root@ansible-awx ~]# crontab -l
0 0 * * * /root/file_cleanup.sh >/dev/null 2>&1

本文所有脚本已上传github

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 生产环境trace log等日志清理脚本

    log_file1日志文件保留40天,log_file2保留45天,即-mtime +xx表示xx天之前。

    loong576
  • Centos7下NFS服务器搭建及客户端连接配置

    表示允许172.27.34.0和172.27.9.0两个网段的服务器访问,若对所有ip地址都可以访问则可设置为*:

    loong576
  • Docker实践(一):Ubuntu16.04安装Docker

    Docker分为开源免费的CE(Community Edition)版本和收费的EE(Enterprise Edition)版本,本文安装社区版,该版本也是开发...

    loong576
  • shell脚本快速入门之-----函数

    函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高。像其他编程语言一样,shell也支持函数。shell函数必须先定义后使用

    不吃小白菜
  • 每个程序员都应该收藏的算法复杂度速查表

    这篇文章覆盖了计算机科学里面常见算法的时间和空间的大 O(Big-O)复杂度。我之前在参加面试前,经常需要花费很多时间从互联网上查找各种搜索和排序算法的优劣,以...

    哲洛不闹
  • 每个程序员都应该收藏的算法复杂度速查表

    算法复杂度这件事 这篇文章覆盖了计算机科学里面常见算法的时间和空间的大 O(Big-O)复杂度。我之前在参加面试前,经常需要花费很多时间从互联网上查找各种搜索和...

    用户1667431
  • 简单的交叉熵损失函数,你真的懂了吗?

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.n...

    红色石头
  • MySQL配置文件及参数详解

    MySQL的配置文件需要根据版本及实际情况进行相应配置,本人使用的是Percona版本,主要是用到线程池等功能,所以选择Percona版本,配置文件内容如下,大...

    July
  • 储备点数学公式

    近日淘到一本不可多得的好书,开篇便是扎实数学功底。所以本篇就来推导一些算法抉择必备的数学功底,不然哪套算法好,好在哪里,也说不出个所以然来,空口无凭,公式说话!

    看、未来
  • 记录日志

    华创信息技术

扫码关注云+社区

领取腾讯云代金券