前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >采用SHELL脚本对日志压缩备份处理

采用SHELL脚本对日志压缩备份处理

作者头像
星哥玩云
发布2022-06-28 16:40:17
9740
发布2022-06-28 16:40:17
举报
文章被收录于专栏:开源部署

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

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

采用SHELL脚本对日志压缩备份处理
采用SHELL脚本对日志压缩备份处理

#!/bin/sh #gztest项目的日志压缩程序 cd /var/www/gztest/Temp/log && rm -rf ./*.txt #打包压缩日志文件 logdir=

执行如下命令:sh -x /root/logzip.sh 对该脚本执行过程进行如下测试: 在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 {} \;

测试之后可以成功运行。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档