线上nginx访问日志切割脚本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线上nginx访问日志切割脚本相关的知识,希望对你有一定的参考价值。
1、说明
随着时间的增加,nginx 的访问日志会越来越大,下图是新部署的线上 zabbix 监控网站运行了十几天左右产生的访问日志达到213M。
所以必须进行日志分割,要求如下:
1、每天的日志单独生成一个文件
2、保留30天的访问日志
2、编写脚本
vim /usr/local/nginx/logs/nginx_log_rotate.sh
#! /bin/bash
logs_path="/usr/local/nginx/logs/" log_name="access.log" pid_path="/usr/local/nginx/logs/nginx.pid"
#日志文件集中存放的路径 [ -d /usr/local/nginx/logs/access_log ] || mkdir /usr/local/nginx/logs/access_log access_logs_path="/usr/local/nginx/logs/access_log/"
#移动日志 mv ${logs_path}${log_name} ${access_logs_path}$(date --date="yesterday"+"%Y-%m-%d")_${log_name}
#生成新的access.log文件 kill -USR1 `cat ${pid_path}`
#删除一个月之前的日志 cd ${access_logs_path} find . -ctime +30 -name "*access.log" |xargs rm -f exit 0 |
脚本增加可执行权限
chmod a+x /usr/local/nginx/logs/nginx_log_rotate.sh
3、加入计划任务
每天凌晨运行脚本
crontab -e
00 00 * * * /usr/local/nginx/logs/nginx_log_rotate.sh |
重启crond服务
service crond restart
运行脚本会生成 access_log 文件夹,下图是到今天为止的所有日志
本文出自 “M四月天” 博客,请务必保留此出处http://msiyuetian.blog.51cto.com/8637744/1880769
以上是关于线上nginx访问日志切割脚本的主要内容,如果未能解决你的问题,请参考以下文章