LINUX使用shell定时压缩tomcat日志文件

xiaoxiao2021-02-28  50

LINUX使用shell定时压缩tomcat日志文件

Linux服务器上每天会产生大量的日志文件,占用大量的磁盘空间;因此就有了压缩日志文件的需要,使用shell脚本来完成定时压缩日志文件。

shell脚本

日志目录/var/log/tomcat/需要对该目录下的多个日志文件(文件名格式:xxxx.log.yyyy-mm-dd)进行压缩处理的思路:1. 每个月的一种日志,以月份为单位压缩在同一个文件中,格式如:xxxx.log.2018-04.zip;2. 每天将前一天日志追加到当月的压缩文件中,如果当月压缩日志文件不存在,则创建;3. 加入系统计划任务,定时执行;实现:

#!/bin/bash #日期:年月 zipDate=`date -d yesterday +%Y-%m` #日期:日 zipFileDay=`date -d yesterday +%d` #日志目录 basePath=/var/log/tomcat8/ cd "$basePath" #文件前缀 logkey='aa.log' #循环每种类型的日志 for logkey in aa.log bb.log cc.log dd.log do echo $logkey #是否存在月压缩文件包,不存在就创建一个,并把当前匹配日期的文件压缩; if [ ! -f "${logkey}.${zipDate}.zip" ]; then echo "${logkey}.${zipDate}.zip does not exist."; zip ${logkey}.${zipDate}.zip ${logkey}.${zipDate}-*; rm ${logkey}.${zipDate}-*; else #存在,判断前一天的日志是否存在,存在就将该日志追加到月压缩包中 echo "${logkey}.${zipDate}.zip is exist."; if [ -f "${logkey}.${zipDate}-${zipFileDay}" ]; then echo "${logkey}.${zipDate}-${zipFileDay} is exist."; zip -m ${logkey}.${zipDate}.zip ${logkey}.${zipDate}-${zipFileDay}; # rm ${logkey}.${zipDate}-${zipFileDay}; fi fi done

文件名backup.sh,完整路径 /var/www/shell/backup.sh

加入到crontab定时器

打开文件

root@iZ253dgk9xaZ:/# crontab -e

加入执行任务 (凌晨12点30分执行)

30 0 * * * /var/www/shell/backup.sh

保存并退出,查看内容

root@iZ253dgk9xaZ:/# crontab -e

OK,结束

转载请注明原文地址: https://www.6miu.com/read-2622683.html

最新回复(0)