目录前言nginx采用docker摆设,简单方便,但出现一个问题,就是日记没有主动切割,导致access.log 无限增大。如果非docker安装,则nginx的日记默认有切割的,那docker为何没有呢,末了发现,nginx容器里面没有 logrotate 服务(logrotate: command not found) 服务器情况:centos 7 其中服务器当地日记映射目录是 /opt/common/nginx/logs 以下搜集了几种日记切割方式:
1 nginx配置map日期在 nginx/conf.d 目录下,新建 logdate.conf 文件(nginx重启会主动加载的) 然后在 nginx.conf 的日记配置如下: [code]access_log /var/log/nginx/access-$logdate.log main; [/code]原来的默认配置是: access_log /var/log/nginx/access.log main; 这时到了第二天就会主动天生新的log文件 比方:赋给nginx权限 [code]chown -R nginx:nginx logs [/code]天生之后,文件长这样: 该方法是按天天归整,缺点是每次打日记会走map一越日期,会捐躯一点点性能,别的,定期清算日记,必要再额外写个清算脚本(只生存N天,腾出存储空间),切割日记目的之一就是为了方便清算日记 2 脚本切割该方法是写个脚本,定时凌晨12点将日记切割归档,这个方法相对比较简单 [code]#!/bin/bash LOGS_PATH=$1 DAYS=$2 YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) #按天切割日记 mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log #向 Nginx 主进程发送 USR1 信号,重新打开日记文件,否则会继续往mv后的文件写内容,导致切割失败. kill -USR1 `ps axu | grep "nginx: master process" | grep -v grep | awk '{print $2}'` #删除配置的N天前的日记 cd ${LOGS_PATH} find . -mtime +${DAYS} -name "*20[1-9][3-9]*" | xargs rm -f exit 0 [/code]将该脚本生存到 cut_nginx_log.sh,找个地方放,比方放在 给该文件增长执行权限: 然后编辑定时任务: 编辑写入: [code]01 00 * * * /opt/common/nginx/logs/cut_nginx_log.sh /opt/common/nginx/logs/ 120 [/code]这个定时任务是,天天凌晨01秒,开始执行该脚本,脚本第一个参数 /opt/common/nginx/logs/ 体现日记的目录,第二个参数120体现日记生存120天,即清算120天之前的日记 这个方法是切割与定期清算一起,比较简单方便 3 配置 logrotate既然nginx容器里面的 logrotate 服务不可用,那么就利用docker宿主机的 logrotate 服务,这个服务是 centos7 默认安装的,即利用服务器当地的 logrotate。 然后添加定时任务: [code]echo “59 23 * * * /usr/sbin/logrotate -f /etc/logrotate.d/nginx >/dev/null 2>&1” > /etc/crontab [/code]大概执行 crontab -e ,然后将以下编辑写入 [code]59 23 * * * /usr/sbin/logrotate -f /etc/logrotate.d/nginx >/dev/null 2>&1[/code]这个定时任务是,天天23:59 开始切割,并做压缩 别的,error.log 也会切割,其中脚本详细参数意义在此不做详述 末了总结:以上三种,脚本方式是比较简单,可根据情况进行配置,选其一即可,更多干系docker nginx日记主动切割内容请搜刮脚本之家以前的文章或继续欣赏下面的干系文章希望大家以后多多支持脚本之家! 来源:https://www.jb51.net/server/328940lbr.htm 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|手机版|小黑屋|梦想之都-俊月星空
( 粤ICP备18056059号 )|网站地图
GMT+8, 2025-7-1 18:49 , Processed in 0.032854 second(s), 19 queries .
Powered by Mxzdjyxk! X3.5
© 2001-2025 Discuz! Team.