Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >生产环境日志清理脚本

生产环境日志清理脚本

作者头像
loong576
发布于 2020-07-20 15:17:14
发布于 2020-07-20 15:17:14
1.2K00
代码可运行
举报
文章被收录于专栏:运维ABC运维ABC
运行总次数:0
代码可运行

一、需求

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

二、模拟产生日志文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[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月的日志文件;日志的创建时间和文件名时间后缀相同。

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

三、清理脚本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/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个日志文件,执行完清理脚本后对应的减少。

四、定时任务

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@ansible-awx ~]# crontab -l
0 0 * * * /root/file_cleanup.sh >/dev/null 2>&1

本文所有脚本已上传github

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/07/17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
系统清理问题:系统清理不彻底,占用大量资源
是山河呀
2025/02/08
1610
系统日志清理问题:系统日志清理不当,占用大量磁盘空间
是山河呀
2025/02/08
3120
日志清理脚本
解决某些中间件或者应用日志无法自动清理的情况,比如:Nacos 的 access 日志。
叨叨软件测试
2020/06/16
1.5K0
日志清理脚本-V0.0.3(增加多目录清理、正则表达式匹配、调试模式;部分细节优化)
解决某些中间件或者应用日志无法自动清理的情况,比如:Nacos 的 access 日志清理,临时目录文件清理等。
叨叨软件测试
2020/07/31
4260
系统垃圾文件清理问题:系统垃圾文件清理不当,占用大量磁盘空间
是山河呀
2025/02/08
3110
日志备份问题:日志备份失败,导致数据丢失
是山河呀
2025/02/07
1830
Oracle-Listener log解读
在ORACLE数据库中,如果不对监听日志文件(listener.log)进行截断,那么监听日志文件(listener.log)会变得越来越大.
小小工匠
2021/08/16
2.2K0
python实现磁盘日志清理
一、描述: 以module的方式组件python代码,在磁盘文件清理上复用性更好 二、达到目标:      清空过期日志文件,清理掉超过自定大小日志文件 三、原码 #!/usr/bin/env python # -*- coding: utf-8 -*-   import commands import os import time import re import getopt import sys   # commands.getstatusoutput 返回两个元素的元组tuple(status, r
py3study
2020/01/10
1.3K0
日志定期清理和logrotate
常见应用服务,都会记录日志,方便问题查询和故障定位。linux系统本身也会有日志输出。
zero000
2019/04/29
8.1K0
日志定期清理和logrotate
生产环境trace log等日志清理脚本
log_file1日志文件保留40天,log_file2保留45天,即-mtime +xx表示xx天之前。
loong576
2019/09/10
5150
shell:清理指定目录中指定天数之前的旧文件
我们在服务器运行一些服务经常会产生很多临时文件, 而有些临时文件不定期处理很容易就打满了整个磁盘; 所以有必要去定期清理,基于这个需求我们就可以搞一个脚本结合crontab或者服务调度这些来使用;
CRPER
2023/04/30
8470
k8s下部署ansible进行node-export二安装
远程普通用户若要使用 sudo 权限,需要在 /etc/ansible/ansible.cfg 进行配置,若远程是root用户则可跳过。
BUG弄潮儿
2025/03/10
860
k8s下部署ansible进行node-export二安装
LINUX脚本使用实战,持续更新
结果测试 [root@zabbix shell]# sh checkurl.sh www.baidu.com www.baidu.com url [ 确定 ]
cuijianzhe
2022/06/14
2.1K0
LINUX脚本使用实战,持续更新
mysql清理日志脚本分享
数据库运行久了, 日志就很多, 很占空间. 就需要定期清理, 人工清理一是麻烦, 二是容易出错
大大刺猬
2022/06/02
1.2K0
mysql清理日志脚本分享
常用APP等日志分割与nginx日志分析脚本合集
[核心命令: find命令去查找日志目录下含关键字的日志文件,然后利用for循环去删除\$cleanday之前的日志文件]
明哥的运维笔记
2019/01/30
6580
shell常用脚本集合
章工运维
2023/05/28
2560
系统临时文件清理问题:系统临时文件清理不当,占用大量磁盘空间
是山河呀
2025/02/08
2320
Tomcat日志配置与清理
今天看了下tomcat日志,发现已经有8g多了...  仔细想想大概有2年多没有处理过日志了。因为博客线上也没出过啥问题,所以压根就没怎么看过日志。毕竟不是运维 ... 这方面确实没咋注意,服务器还是有很多需要搞清楚的 。
sunonzj
2022/06/21
2.1K0
Tomcat日志配置与清理
【AlmaLinux+Docker MySQL 实战】:自动化备份与恢复(备份策略·脚本编写·恢复演练)
作为 DBA,万一一场“你以为的备份”没有发生,就可能让业务在一秒内崩塌。怎样才能保证备份脚本一键跑起、有问题及时知晓、恢复流程随时可演练?这篇文章将从“备份策略”“脚本编写”到“恢复演练”三个知识节点,带你一步一步彻底搞定 MySQL 自动化备份与恢复。
IT咸鱼
2025/06/09
1280
【AlmaLinux+Docker MySQL 实战】:自动化备份与恢复(备份策略·脚本编写·恢复演练)
Linux下Nginx、MySQL和PHP等应用的日志切割脚本
在Linux中如果应用程序会产生日志,那么就需要考虑日志切割,例如按照固定的大小切割、按照日期进行切割等等。同样,在编译Nginx1.9.0、MySQL5.7.7rc和PHP7后,这三个应用服务都会产生日志,尤其是Nginx进程根据配置文件ngnix.conf记录每条访问记录到access.log中。如果所有的日志都打印到同一个文件中的话,那么时间长了的话就会影响效率。
typecodes
2024/03/29
1670
Linux下Nginx、MySQL和PHP等应用的日志切割脚本
相关推荐
系统清理问题:系统清理不彻底,占用大量资源
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验