nginxi日志切割

当网站访问量大后,日志数据就会很多,如果全部写到一个日志文件中去,文件会变得越来越大。文件大速度就会慢下来,比如一个文件几百兆。写入日志的时候,会影响操作速度。另外,如果我想看看访问日志,一个几百兆的文件,下载下来打开也很慢。

为了方便对日志进行分析计算,需要对日志进行定时切割。定时切割的方式有按照月切割、按天切割,按小时切割等。最常用的是按天切割。

配置shell脚本

#!/bin/bash
# 必须每天00:00运行

#日志保留天数
DAY=7

LOGS_PATH="/usr/local/webserver/nginx/logs" #nginx日志存放目录

mkdir -p ${LOGS_PATH}/$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")  #建立以日期的日志文件夹
mv -f ${LOGS_PATH}/access.log ${LOGS_PATH}/$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log    #备份access.log到以日期的日志文件夹中
mv -f ${LOGS_PATH}/error.log ${LOGS_PATH}/$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/error_$(date -d "yesterday" +"%Y%m%d").log    #备份error.log到以日期的日志文件夹中

/etc/init.d/nginx reload   #重载告诉nginx重新打开日志。
for ACCESS_LOG in `find ${LOGS_PATH}/ -type f -name "access_[0-9]*.log" -mtime +${DAY}`;do   
rm -f ${ACCESS_LOG}
done        #删除7天以前的日志。
for ERROR_LOG in `find ${LOGS_PATH}/ -type f -name "error_[0-9]*.log" -mtime +${DAY}`;do
rm -f ${ERROR_LOG}
done

######## -mtime   -n +n                #按文件更改时间来查找文件,-n指n天以内,+n指n天以前

写入到计划任务中:

00 00 * * * /bin/sh /usr/local/webserver/nginx/script/cut_nginx_log.sh

时间: 2025-01-04 16:35:30

nginxi日志切割的相关文章

Apache配置域名跳转、日志切割、静态缓存、防盗链、访问控制

·/usr/local/apache2/bin/apachectl  -M:查看安装了哪些模块 ·/usr/local/apache/bin/apachectl   -V:查看使用的模式 ·/usr/local/apache2/bin/apachectl  -t:检查语法错误 ·/usr/local/apache2/bin/apachectl  -l:查看安装的库文件 ·/usr/local/apache2/bin/apachectl graceful:重新加载配置 ·/usr/local/ap

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

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

nginx日志切割配置

1. 编辑脚本 说明:date -d "-1 day" 表示昨天: %F表示年月日以Y%-m%-d形式:[-d ]表示判断是否有这个目录,如果没有就或关系,创建该目录:将每日的access.log文件挪到创建的目录/tmp/nginx_log/中,并命名为d变量的格式:reload用于重新生成acces.log,并重定向清空:考虑到切割的日志比较大,gzip -f判断日志是否存在,如果存在,则进行强制压缩(如果一天执行多次,该文件已经存在并压缩过,则会同名,-f覆盖不提示) vim /

shell脚本:日志切割与上传

脚本说明: 日志切割与上传类脚本的功能:脚本自身的运行日志记录与清理.日志切割与打包.ftp上传.传送失败自动重传.断电自动补传.清理超期旧打包等 -------------------- #!/bin/bash # Cut and upload aclog log # by colin # revision on 2016-06-15 ######################################## # 功能说明:该脚本运用于上传aclog日志 # # 使用说明: #+ ./a

shell脚本:nginx访问日志切割与打包上传

脚本功能: 日志切割类脚本,包含:nginx的访问日志.网关设备.AC设备.认证信息等等日志,都通过ftp上传到相应的服务器进行保存. --------------- #!/bin/bash # Cut and upload nginxlog # by colin # revision on 2016-02-22 ######################################## # 功能说明:该脚本运用于切割与上传nginxlog # # 更新说明: # ############

LAMP 2.0Apache日志切割

每次访问网站就会产生若干条日志,当然前提是已经配置了日志. 配置日志的文件在 vim /usr/local/apache2/conf/extra/httpd-vhosts.conf 把注释掉的这两行打开 ErrorLog "logs/dummy-host.example.com-error_log" CustomLog "logs/dummy-host.example.com-access_log" common common是日志的格式,把日志的格式改成combi

tomcat日志切割catalina.out

法一:利用系统logrotate命令来实现tomcat的日志切割 先定义tomcat的pid 文件 修改$TOMCAT_HOME/bin/catalina.sh文件,大约在128行左右,在PRGDIR下面一行添加CATALINA_PID参数行,修改完成后应该跟下面相同. # Get standard environment variables PRGDIR=`dirname "$PRG"` CATALINA_PID=/var/run/tomcat.pid #CATALINA_PID=$

Nginx 笔记与总结(5)访问日志管理:计划任务 + 日志切割

要在第二天的凌晨把前一天的访问日志切割备份,并以时间作为文件名,例如:access.20150728.log,这就需要在 Linux 中格式化时间,例如: [[email protected] ~]# date 2015年 07月 28日 星期二 02:33:02 CST [[email protected] ~]# date -d yesterday 2015年 07月 27日 星期一 02:33:18 CST [[email protected] ~]# date -d yesterday

Ngnix的日志管理和用定时任务完成日志切割

一.日志管理 先来看看ngnix的配置文件的server段 接下来我们解释一下默认格式的具体意思 #log_format main '$remote_addr(远程IP) - $remote_user(远程用户) [$time_local](访问时间) "$request"(请求方式) ' # '$status(状态302.404.401.403等) $body_bytes_sent(请求体 body 长度等) "$http_referer"(referer来源信息