LNMP - Nginx日志切割

随着访问量的增大,如果对日志置之不理,总有一天日志文件会撑爆磁盘;所以需要我们对日志进行切割,并且每隔一段时间删除一些旧日志,防止日志无休无止的占用磁盘的空间。

可以通过写一个shell脚本自动化切割,比如每天凌晨00:00把昨天的日志进行归类重命名:

# cd /usr/local/sbin

# vim nginx_logrotate.sh

写入以下脚本:

#! /bin/bash

d=`date -d "-1 day" +%F`

[ -d /tmp/nginx_log ] || mkdir /tmp/nginx_log

mv /tmp/access.log /tmp/nginx_log/$d.log

/etc/init.d/nginx reload > /dev/null

cd /tmp/nginx_log/

gzip -f $d.log

规定每天凌晨00:00去切割,并删除超过30天的日志文件

# crontab -e

0 0 * * * sh /usr/local/sbin/nginx_logrotate.sh

0 0 * * * find /tmp/nginx_log -type f -mtime +30 |xargs rm -rf

时间: 2024-10-08 11:13:27

LNMP - 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 +%