nginx日志切割

记录这个就是方便自己以后查看!!!

nginx按天切割日志

脚本示例如下

#!/bin/bash
logs_path="/usr/local/openresty/nginx/logs/"
pid_path="/usr/local/openresty/nginx/logs/nginx.pid"
mv ${logs_path}access.log  ${logs_path}access_$(date -d "yesterday" +"%Y%m%d").log
gzip ${logs_path}access_$(date -d "yesterday" +"%Y%m%d").log
kill -USR1 `cat ${pid_path}`

计划任务cron

00 00  * * * /bin/bash cut_log_day.sh

注:gunzip access.log.gz解压后源文件消失,gunzip -c error.log.bak.gz > error.log.bak解压后保留源文件

此时脚本中也可以加入删除一周以前的压缩日志

#删除1周前的日志文件
del_tag=$(date "+%Y%m%d" -d "1 week ago")
/bin/rm -rf $logpath/$del_tag.tar.gz
或者使用find查看进行删除也是可以的

nginx按小时切割并压缩

脚本示例如下

#!/bin/bash
logs_path="/usr/local/openresty/nginx/logs/"
pid_path="/usr/local/openresty/nginx/logs/nginx.pid"
date_path=`date +%Y%m%d`
 
#收下这句用于判断,当时间为凌晨00:00时,将date_dri设为昨天
if [ "`date +%H`" = "00" ]; then
  date_path=`date -d "yesterday" +%Y%m%d`
fi
#将当前小时减一,因为记录的是之前的访问数据
tag=`date +%Y%m%d%H --date="-1 hour"`
/bin/mkdir -p ${logs_path}${date_path}
mv ${logs_path}access.log  ${logs_path}${date_path}/access_${tag}.log
gzip ${logs_path}${date_path}/access_${tag}.log
kill -USR1 `cat ${pid_path}

添加计划任务

00 */1 * * * /bin/bash  nginx_log_hour.sh

注:gzip ${logs_path}${date_path}/access_${tag}.log这个是压缩源文件后并消失,gunzip xx.gz这个命令是解压,解压后源文件消失,如何保留压缩后的文件话使用gunzip -c error.log.bak.gz > error.log.bak

时间: 2024-10-10 17:42:28

nginx日志切割的相关文章

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

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

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之后继续写日志. 我们可以通

nginx日志切割并使用flume-ng收集日志

nginx的日志文件没有rotate功能.如果你不处理,日志文件将变得越来越大,还好我们可以写一个nginx日志切割脚本来自动切割日志文件.第一步就是重命名日志文件,不用担心重命名后nginx找不到日志文件而丢失日志.在你未重新打开原名字的日志文件前,nginx还是会向你重命名的文件写日志,linux是靠文件描述符而不是文件名定位文件.第二步向nginx主进程发送USR1信号.nginx主进程接到信号后会从配置文件中读取日志文件名称,重新打开日志文件(以配置文件中的日志名称命名),并以工作进程的

nginx日志切割脚本,自动上传到日志服务器

nginx日志切割脚本,自动上传到日志服务器 1 nginx是yum方式安装,系统会自动生成nginx日志切割计划任务在/etc/logrotate.d/nginx下,把自动生成的计划任务删除,自己编写切割脚本,并传到统一存放日志的服务器上.  www.ahlinux.com 2 安装ncftp包,用于日志传输时使用. 3 简单切割脚本如下: #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin export PATH yesterday=`date +%

简单的nginx日志切割脚本

#!/bin/bash savepath_log='/opt/apps/nginx/nglogs' nglogs='/opt/apps/nginx/logs' mkdir -p ${savepath_log}/$(date +%Y)/$(date +%m) mv $nglogs/error.log ${savepath_log}/$(date +%Y)/$(date +%m)/error.$(date +%Y%m%d).log mv $nglogs/access.log ${savepath_l