实现对nginx日志切割

nginx的信号控制:例如:kill -QUIT N

TERM,INT 快速关闭
QUIT  从容关闭
HUP   平滑重启,重新加载配置文件
USR1  重新打开日志文件,在切割日志时用途比较大
USR2  平滑升级可执行程序
WINCH 从容关闭工作进程

切割日志文件:

用来定期切割较大日志文件,创建bash脚本,并创建计划任务cron。

脚本内容:

#!/bin/bash

### Nginx Access Log Separation ###

LOG_PATH="/usr/local/nginx/logs"

YESTERDAY="$(date -d "yesterday" +%Y%m%d)"

NGINX_PID=`/bin/cat /usr/local/nginx/logs/nginx.pid`

### WEB Access Log Separation ###

mv ${LOG_PATH}/web/web_access.log ${LOG_PATH}/web/web_access.log-${YESTERDAY}

if [[ "$?" = "0" ]];then

echo "Move Successfully."

fi

### Reload Nginx To Create New Log Files ###

/bin/kill -USR1 ${NGINX_PID}

计划任务:

0 0 * * * /bin/bash /usr/local/nginx/sbin/CutAccessLog.sh

时间: 2024-10-09 12:00:26

实现对nginx日志切割的相关文章

通过Rsyslog实现对Nginx日志发送至日志服务器

日志服务器配置: $EscapeControlCharactersOnReceive off $ActionForwardDefaultTemplate RSYSLOG_ForwardFormat $template RemoteLogs,"/rsyslog/nginx_1/nginx_access_log.%$year%-%$month%-%$day%" local5.* ?RemoteLogs 客户端配置: $ModLoad imfile $InputFileName /usr/l

Nginx日志切割并计划任务自动上传到FTP服务器

枫城浪子原创,转载请标明出处! 微信bh19890922 QQ445718526,490425557 更多技术博文请见个人博客: https://fengchenglangzi.000webhostapp.com http://fengchenglangzi.blog.51cto.com 一.简述 Nginx WEB服务器每天会产生大量的访问日志,而且不会自动地进行切割,如果持续天数访问,将会导致该access.log日志文件容量非常大,不便于SA查看相关的网站异常日志,并且后期进行分割非常不易

02-keepalived实现对nginx服务的高可用(主备)

实验环境:controller3,controller4为后端web服务器,controller1,controller2为nginx负载均衡服务器,用keepalived实现主备模式的高可用 controller1  IP:9.110.187.120 10.1.1.120 controller2  IP:9.110.187.121 10.1.1.121 controller3  IP:10.1.1.122 controller4  IP:10.1.1.123 1.controller3,con

nginx日志切割shell脚本

#!/bin/bash #function:cut nginx log files shell #cp /usr/local/nginx/logs/access.log /usr/local/nginx/logs/access.log.bak log_cut_path="/var/log/nginx" log_files_path="/usr/local/nginx/logs/" log_files_dir=${log_cut_path}$(date -d &quo

5、nginx日志切割和删除

5.Nginx日志切割和日志定期删除 LogDir=/data/logs/nginx   #日志存放目录 LogDate=`date +%Y%m%d`    #日志名称后缀 KeepLogDays=30   #保留的天数(看自己的需求) DelDate=`date -d "-${KeepLogDays} days" +%Y%m%d` #当前时间的前三十天时间戳(是一个具体的日期) (-d参数是删除 语法:date -d 3days 双引号引用的话中间可以有空格  否则会报错) (+%Y

Nginx日志切割,无缝升级

概述: nginx中有两种比较常用的日志文件,访问日志access.log和错误日志error.log,访问日志记录了客户端访问服务器的输出信息,错误日志记录了本地localhost的故障信息.因此合理的管理日志文件对运维人员的工作不言而喻,以下是摘自互联网的脚本,来学习参考已经试验过,可以投入生产环境使用 日志文件切割 由于 Nginx 的日志都是写在一个文件当中的,因此,我们需要每天零点将前一天的日志存为另外一个文件,这里我们就将 Nginx 位于 logs 目录中的 access.log

nginx日志切割,日志格式,静态文件不记录日志,配置缓存

我是直接写的一个简单的shell实现的,内容如下: #! /bin/bash datedir=`date +%Y%m%d` /bin/mkdir  /home/logs/$datedir >/dev/null 2>&1 /bin/mv /home/logs/*.log /home/logs/$datedir /bin/kill -HUP `cat /var/run/nginx.pid` 这样执行以后,就会在/home/logs/$datedir目录下生成日志文件,你可以在/etc/cr

nginx日志切割脚本,python实现

# 自搭建了个人博客 有需要交流学习的可以访问 www.wpython.com #!/usr/bin/env python   import datetime,os,sys,shutil   log_path = '/alidata/log/nginx/access/' log_file = 'www.wpython.com.log'   yesterday = (datetime.datetime.now() - datetime.timedelta(days = 1))   try:    

linux shell:nginx日志切割脚本

需求原因:nginx不具备日志切割功能,日志量较大,方便分析. 实现目的:完成nginx日志切割,并根据时间命名 简要命令: mv /usr/local/tengine/logs/access.log /usr/local/tengine/logs/access-date.log kill -USER1 Nginx主进程号. 解释: 通过mv命令重命名日志,并且通过kill -USER1 nginx-id的命令,告诉nginx需要写新的日志, 不然nginx不会在mv之后继续写日志. 我们可以通