Nginx按天自动日志切割脚本

因为nginx存放的日志文件逐渐增大,导致日后想察看某个时间的日志的时候,打开巨大文件所带来的性能代价和时间定位查找麻烦,因此需要对日志文件按照时间和频率进行切割。切割过程如下:

  1. 创建当前时间目录,比如年/月目录
  2. 然后将当前指定的日志,剪切到该创建好的目录下
  3. 重启nginx服务,重新生成0kb大小的新日志文件
  4. 通过计划任务,周期性执行以上切割日志,重新生成日志的操作就能达到既让日志文件保持一定大小而且又能按照指定的时间格式和目录进行存放。方面查询的便利和文件打开的快速。

目前网上也有一些Nginx日志切割脚本,但是还是有用户反映网上Nginx日志切割脚本有问题,我感觉一般是因为脚本中的参数设置问题,或者是crontab中的设置问题。

如果是lnmp0.5/0.6/0.7/0.8/0.9通用,用户可以仅修改log_files_name后面的要切割的日志文件名就直接使用。

脚本主要参数:

#设置nginx日志文件目录路径
log_files_path=”/home/wwwlogs/”
#日志文件将会存放到/home/wwwlogs/年/月/日志文件名_年月日.log
log_files_dir=${log_files_path}$(date -d “yesterday” +”%Y”)/$(date -d “yesterday” +”%m”)
#设置要切割的日志的名字,如果日志目录下面的日志文件名为vpser.net.log,则填写vpser.net,每个日志名用空格分隔
log_files_name=(access vpser.net licess)
#设置nginx文件的位置
nginx_sbin=”/usr/local/nginx/sbin/nginx”
#设置日志保存的时间,天
save_days=30

如果是非lnmp一键安装包用户可以通过修改上述参数适应你的nginx环境。

将nginx日志切割脚本下载到/root/下面。再添加自动执行,执行:crontab -e

输入:00 00 * * * /bin/bash /root/cut_nginx_logs.sh 每天0点整开始切割脚本。

Nginx按天自动日志切割脚本

上面的意思可以写成如下表格形式:      *表示通配符表示每天或者说任意一天的意思

Nginx按天自动日志切割脚本

如果想撤消这个任务该怎么做???这里有个选项是-r,直接输入crontab -r:

编写完这个计划任务以后,还是要检查一下这个任务是否在启动,输入ps -le | grep cron:

Nginx按天自动日志切割脚本

S表示确实是启动的,如果没有启动可以输入:/etc/rc.d/init.d/cron start即可。。。。

同样crontab文件(也就是输入crontab -e后出现要编辑一个文件)建立好后放在/var/spool/cron目录里面.

Nginx按天自动日志切割脚本

下载权限

查看
  • 免费下载
    评论并刷新后下载
    登录后下载

查看演示

  • {{attr.name}}:
您当前的等级为
登录后免费下载登录 小黑屋反思中,不准下载! 评论后刷新页面下载评论 支付以后下载 请先登录 您今天的下载次数(次)用完了,请明天再来 支付积分以后下载立即支付 支付以后下载立即支付 您当前的用户组不允许下载升级会员
您已获得下载权限 您可以每天下载资源次,今日剩余
声明:本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有,未及时购买和付费发生的侵权行为,与本站无关。

给TA打赏
共{{data.count}}人
人已打赏
开发编程营销裂变

70W打赏|一篇公众号文章推文,秒杀国内95%+的人均年收入工资

2020-2-23 12:14:59

web前端开发编程

HTML5网站建设中有什么新特性?

2020-5-19 20:24:35

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索