LINUX使用shell定时压缩tomcat日志文件
LINUX使用shell定时压缩tomcat日志文件
Linux服务器上每天会产生大量的日志文件,占用大量的磁盘空间;因此就有了压缩日志文件的需要
,使用shell脚本来完成定时压缩日志文件。
shell脚本
日志目录
/var/log/tomcat/
需要对该目录下的多个日志文件(文件名格式:xxxx.log.yyyy-mm-dd)进行压缩
处理的思路:
- 每个月的一种日志,以月份为单位压缩在同一个文件中,格式如:xxxx.log.2018-04.zip;
- 每天将前一天日志追加到当月的压缩文件中,如果当月压缩日志文件不存在,则创建;
- 加入系统计划任务,定时执行;
实现:
#!/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定时器
crontab默认编辑器为nano,使用不太方便;下面使用vim打开
打开文件
root@iZ253dgk9xaZ:/# export EDITOR="/usr/bin/vim"; crontab -e
加入执行任务 (凌晨12点30分执行)
30 0 * * * /var/www/shell/backup.sh
保存并退出,查看内容
root@iZ253dgk9xaZ:/# crontab -e
OK,结束
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 陈大雷的 Blog
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果