Linux通用性-日志切割脚本

news/2024/9/20 14:43:01/文章来源:https://www.cnblogs.com/zhoutuo/p/18387012

一、公司提供的参考脚本:

#!/bin/bash
# 定义需要清理的文件
log_file=(
"/mpjava/ly.mp.dfpv.acc.biz/bin/nohup.out"
"/mpjava/ly.mp.dfpv.acc.service/bin/nohup.out"
)
# 获取当天日期
date_now=$(date +%Y%m%d)for file_dir in $log_file
do# 获取文件路径dir=$(dirname $file_dir)# 获取文件名file_name_new=$(basename $file_dir)# 创建备份目录mkdir -p ${dir}/backup# 备份日志cp ${file_dir} ${dir}/backup/${date_now}_${file_name_new}# 清空日志echo "" > ${file_dir}# 删除历史cd ${dir}/backup/ &&  find . -type f -mtime +6 -exec rm -f {} \;
done

验证结果:并未验证成功

二、自己改进后脚本:

#!/bin/bash# 定义需要清理的文件
log_file=("/mpjava/ly.mp.dfpv.acc.biz/bin/nohup.out""/mpjava/ly.mp.dfpv.acc.service/bin/nohup.out"
)# 获取当前日期和时间,用于备份文件名中包含时间戳
date_now=$(date +%Y%m%d_%H%M)for file_dir in "${log_file[@]}"
doif [[ ! -f "$file_dir" ]]; thenecho "Warning: File $file_dir does not exist, skipping."continuefi# 获取文件路径和文件名dir=$(dirname "$file_dir")file_name_new=$(basename "$file_dir")# 创建备份目录mkdir -p "${dir}/backup"# 备份日志,添加时间戳避免覆盖backup_file="${dir}/backup/${date_now}_${file_name_new}"cp "$file_dir" "$backup_file" && echo "Backup created: $backup_file" || echo "Error: Failed to backup $file_dir"# 清空日志> "$file_dir" && echo "Log cleared: $file_dir" || echo "Error: Failed to clear log $file_dir"# 删除超过7天的日志find "${dir}/backup" -type f -mtime +6 -exec rm -f {} \; &>/dev/nullif [[ $? -eq 0 ]]; thenecho "Old logs removed from ${dir}/backup"elseecho "Error occurred while removing old logs from ${dir}/backup"fi
done

脚本执行过程:
执行脚本前:

执行脚本后:

结论:这个脚本是通用性脚本,nginx、各中间件、应用服务等日志清理都可以使用,只需要修改log_file变量为自己环境具体路径 和 日志文件即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/789191.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis十大数据类型

Redis十大数据类型 数据类型一般指的是 value 的数据类型,key的类型一般都是字符串 一、总体概述redis字符串(String)string是redis 最基本的类型,一个key对应一个value,string类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象 一个…

【转载】启发式合并

https://zhuanlan.zhihu.com/p/560661911 数据结构学习笔记(8) 启发式合并 启发式合并是用来解决子树中的统计问题。在codeforces上叫做dsu on tree(树上启发式合并)。这里我们主要是来讲在树上进行启发式合并。实际上之前我有讲过启发式合并严格鸽:启发式合并 看似暴力实则很…

利用通义灵码实现我的第一次开源贡献

作者:重庆邮电大学计算机学院李逸雄 结缘开源 最早了解开源是从学校的兴趣组织开始的。2023 年 10 月 21 日,openSUSE 亚洲峰会在我们学校召开,这次会议汇聚了许多来自 openSUSE 社区贡献者以及对开源感兴趣的爱好者们。我第一次知道有这么多志同道合的爱好者在进行开源贡献…

腾讯云域名托管到 cloudflare

cloudflare https://dash.cloudflare.com/ 腾讯云域名列表 https://console.cloud.tencent.com/domain/all-domain/all 先进入 腾讯云列表,点击自己已购买的域名点击修改; https://console.cloud.tencent.com/domain/all-domain/all修改为cloudflare提供的, 如下: 进入 htt…

中间件实时监控,运维难题一站解决

智和信通方案通过构建对Tomcat、Jboss、WebLogic等中间件的关键指标的监控,实现对中间件性能和资源的实时追踪,识别并解决影响中间件性能的问题,保障中间件的高性能及高可用性,更全面地支撑业务及应用的稳定、持续运行,提升用户体验。 中间件是介于操作系统和在其上…

【性能优化+数据库】读写分离方案

读写分离是一种常见的优化方案,旨在通过将读操作、和写操作分开,如下图所示:大致的原理,如下: 【主库(Master)】:负责处理所有的写操作(比如:插入、更新、删除......)、和写操作相关的事务;【从库(Slave)】:负责处理读操作(查询),通过主从复制机制从主库同步…

【性能优化+数据库】读写分离

读写分离是一种常见的优化方案,旨在通过将读操作、和写操作分开,如下图所示:大致的原理,如下: 【主库(Master)】:负责处理所有的写操作(比如:插入、更新、删除......)、和写操作相关的事务;【从库(Slave)】:负责处理读操作(查询),通过主从复制机制从主库同步…

VL25 输入序列连续的序列检测

这个题目的意思是输入是单bit脉冲,然后当8个周期的脉冲序列符合给定的参数值则match输出1; 因此肯定需要一共8位的寄存器存储总共8个a的输入脉冲 此外由于是从左向右匹配,因此每个周期输入的a要从寄存器最低位输入,从右向左移位(temp_a<={temp_a[6:0],a};),这样才是输…

电商领域的新引擎:API接口的革命性应用

​在数字化转型的大潮中,电商行业正经历着前所未有的变革。API接口,作为连接不同系统和服务的桥梁,正在成为电商领域的新引擎。本文将探讨电商API接口如何助力企业释放数据潜力,驱动业务增长。 一、电商API接口:连接的力量 API(Application Programming Interface)接口是…

HDMI详解

HDMI详解 摘要 本文详细介绍了HDMI接口的定义、不同类型的接口、HDMI脚位功能、版本间的区别,重点探讨了电路设计,包括电源、HPD检测、I2C通信、数据时钟、ARC/eARC音频回传以及CEC消费电子控制等内容,为HDMI产品设计者提供了实用指南。 HDMI的定义 HDMI是高清多媒体接口(Hi…

NSIS入门笔记

1. 基本介绍 NSIS (Nullsoft Scriptable Install System)是一个专业的开源系统,用于创建Windows安装程序。平时工作中想要把exe文件打包,并且在不同系统之间安装,可以使用NSIS,本文使用版本为3.08。 2. 下载地址 可以通过搜索引擎搜索NSIS,推荐安全下载链接:https://nsis…

NSIS新手入门

1. 基本介绍 NSIS (Nullsoft Scriptable Install System)是一个专业的开源系统,用于创建Windows安装程序。平时工作中想要把exe文件打包,并且在不同系统之间安装,可以使用NSIS,本文使用版本为3.08。 2. 下载地址 可以通过搜索引擎搜索NSIS,推荐安全下载链接:https://nsis…