我是靠谱客的博主 寂寞月光,最近开发中收集的这篇文章主要介绍采用SHELL脚本对日志压缩备份处理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

由于项目的特殊需求,需要保留项目每天的日志,而日志文件又很大,时间久了会影响磁盘的使用量,因此必须定期的压缩备份以前的日志文件,这里我是通过shell脚本压缩打包文件然后加入到linux的定时任务中来处理的,虽说shell脚本很简单就是那么几行,但是当中遇到的问题还是做一下说明:

最初的做法我是直接用tar命令打包日志目录下面的日志文件,打包成功后删除日志文件,我的shell脚本如下:

#!/bin/sh
#gztest项目的日志压缩程序
cd /var/www/gztest/Temp/log && rm -rf ./*.txt
#打包压缩日志文件
logdir=$(date +%Y-%m-%d).log.tar
tar -jcf  ${logdir}  ./*.log && rm -rf ./${logdir}

执行如下命令:sh -x /root/logzip.sh 对该脚本执行过程进行如下测试:114308707.png

在tar打包的时候提示"在我们读入文件时文件发生了变化",我想大家应该可以想到是什么原因了,因为有程序一直在往这个日志文件中写入内容,所以这里抛出了异常导致后面的命令没有执行。

后来我换了一个方法,先将日志文件拷贝到一个临时目录,然后将临时目录打包、最后删除临时目录、和已经打包过的文件,shell脚本如下:

#!/bin/sh
#gztest项目的日志压缩程序
cd /var/www/gztest/Temp/log && rm -rf ./*.txt
#打包压缩日志文件
logdir=$(date +%Y-%m-%d)
mkdir ${logdir}
find ./ -name '*.log' -mtime +0 -type f -exec cp -r {} ./${logdir} ;
tar -jcf  ${logdir}.log.tar  ./${logdir}/*
rm -rf ./${logdir}
find ./ -name '*.log' -mtime +0 -type f -exec rm -rf {} ;

测试之后可以成功运行。

转载于:https://blog.51cto.com/suiwnet/1307965

最后

以上就是寂寞月光为你收集整理的采用SHELL脚本对日志压缩备份处理的全部内容,希望文章能够帮你解决采用SHELL脚本对日志压缩备份处理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(30)

评论列表共有 0 条评论

立即
投稿
返回
顶部