shell脚本示例2:nginx日志文件切割

羌俊恩 社区创始人
优质创作者: 运维技术领域
领域专家: 操作系统技术领域
2022-08-12 20:46:04

一、背景

在Nginx作为web的场景中,会发现随着业务量的增加及时间的积累,会发现access.log日常异常大。不仅占用空间,而且查看日志也不方便。这时,我们就需要对access.log进行按时间/日志文件大小进行切割。

二、脚本示例

#!/bin/bash

#日志目录

logs_path=/usr/local/nginx/logs/

#切割日志的时间

logs_date=`date -d "yesterday" +%F`

#归档转存日志,配合计划任务完成定期归档,即相当于按时间切割

mv ${logs_path}/access.log ${logs_path}/access_${logs_date}.log && gzip ${logs_path}/access_${logs_date}.log

#重新加载nginx程序pid,即平滑重启Nginx,如果不加载程序会继续向access写日志到原文件

kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid

配置定时任务:

1 0 * * * /bin/bash /nginx_split.sh  /每天转储一次

...全文
77 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

134,966

社区成员

发帖
与我相关
我的任务
社区描述
欢迎各位小伙伴积极活跃投稿,将日常IT打怪中遇到的问题,优秀解决方案,或自己的博客认为比较经典的文章分享到这里,共同营造一个悦享的问题库,Review及减少重复造车轮的无限循环,此致敬礼
devops经验分享开源 技术论坛(原bbs) 北京·西城区
社区管理员
  • 羌俊恩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

本社区:旨在推进运维云化知识库建设,为更多运维提供参考及经验交流;加入社区的同学,如果运维工作中遇到问题或最后得到解决,有劳凑空发帖,分享共建FAQ社区。

得到解决方案的同学,请积极为发帖的同学点赞、评论、能力范围内打赏激励。另外本社区采用游戏修仙角色作为鼓励,对不同贡献者授予对应“勋章”。

最后祝愿社区繁荣昌盛,此致敬礼!!!

试试用AI创作助手写篇文章吧