nginx日志分割:windows和linux

一、为什么对日志进行分割。

1.nginx日志默认情况下统统写入到一个文件中,文件会变的越来越大.

2.单个的日志文件非常不方便查看分析。

二、简析日志分割。

不论是windows还是linux,对日志的分割都是一条思路。即:

1.对现有日志文件进行重命名。

2.生成新的日志文件。

3.定制脚本,定时执行.

三、日志分割实操。

windows系统:

1.logcut.bat

#定义时间(年月日)

for /f "tokens=1 delims=/ " %%j in ("%date%") do set d1=%%j

for /f "tokens=2 delims=/ " %%j in ("%date%") do set d2=%%j

for /f "tokens=3 delims=/ " %%j in ("%date%") do set d3=%%j

#创建目录便于查看

set backupdir=C:\nginx\logs\%d1%\%d2%\%d3%

mkdir %backupdir%

#移动原有日志,相当于重命名

move F:\nginx\access.log %backupdir%

#重开日志,生成新的日志文件

F:\nginx\nginx.exe -s reopen

2.通过windows的计划任务来实现定时分割日志(本人使用的windows2012 r2)

linux系统:

1.logcut.sh

#!/bin/sh

#定义日志格式

Dateformat=`date +%Y%m%d`

#定义日志目录

Basedir="/application/nginx"

Nginxlogdir="$Basedir/logs"

#定义分割的日志

Logname="access"

#判断是否存在日志文件

[ -d $Nginxlogdir ] && cd $Nginxlogdir||exit 1

[ -f ${Logname}.log ]||exit 1

#对原有的日志文件进行修改

/bin/mv $Logname.log ${Dateformat}_$Logname.log

#重新生成nginx日志

$Basedir/sbin/nginx -s reload

2.定时任务,实现功能。

crontab -l

#logs  cut

00 00  * * * sh /server/scripts/logcut.sh  &>/dev/null

原文地址:http://blog.51cto.com/13043960/2105850

时间: 2024-10-12 07:39:53

nginx日志分割:windows和linux的相关文章

nginx 日志分割(简单、全面)

Nginx 日志分割 因业务需要做了简单的Nginx 日志分割, 第1章 详细配置如下. #建议在mkdir  /home/shell  -p 专门写shell 脚本位置 [email protected]:/home/shell# cat nginxcut.sh #!/bin/sh ##### #by xuebao #2017.05.16 date=`date +%Y%m%d` nginxlog="/app/logs/nginx/" /bin/mv ${nginxlog}www_ac

nginx日志分割脚本

nginx 日志分割,可以分割一年内没有分割的日志,以每天一个日志文件打包 转载请注明出处:http://lm3810.blog.51cto.com/846925/1860543 #!/bin/bash #hls_nginx_log_cut.sh #by Louis 2016/10/10 logs_path='/data/store/logs/www/' #日志文件所在路径 files=`ls $logs_path` backup_path='/data/store/backuplogs/' #

nginx日志分割小脚本

nginx的日志一直是写在一个文件上面,运行久了之后文件会非常大,因此我们有必要对nginx的日志进行分割: 1 2 3 4 5 6 7 8 9 10 11 #! /bin/bash ACCESS_LOG=/data/nginx/www.log ERROR_LOG=/data/nginx/error.log YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) #mv logs echo "move log files" mv ${A

nginx日志分割处理以及分析

在很多时候,我们会非常关注网站的访问量,比如网站的日PV是多少.网站某个功能上线之后点击量是多少,像这些东西都是需要从web容器中的访问日志统计出来的,下面我们看一下如何在nginx中统计网站的访问信息 1.设置Nginx访问日志记录格式 在默认情况下,nginx只是记录相关get信息,像post页面是不记录的,所以下面需要修改nginx.conf,让其访问日志记录post等请求信息,在nginx.conf中server段中加入如下信息 log_format  access  '$remote_

Nginx日志分割处理

一.配置nginx日志 location /html/ {         root  /home/web;         index  index.html index.htm;         access_log  /var/log/nginx/ad-access.log_pipe  ad_access; } ad_access:为配合日志格式. 先创建管道:mkfifo /var/log/nginx/ad-access.log_pipe 启动cronolog: nohup cat /v

nginx日志分割

1.写一个切割的脚本 进入vhost目录下 cd /usr/local/nginx/conf/vhosts 2.打开一个文件 vim /usr/local/sbin/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/

nginx 日志分割脚本

#!/bin/bash # 01 00 * * * /nginxlogs/ngx_logcut.sh  >/dev/null 2>&1   ##可以放到计划任务里自动执行脚本 pidfile=/var/run/nginx.pid      #nginx进程pid文件 logpath='/nginxlogs/'            #日志目录 keepdays=30                       #日志保存天数 logfiles=(error.log access.log

nginx日志分割并定期删除

#!/bin/bash #切割nginx的日志,然后定期删除 source /etc/profile log_path=/usr/local/nginx/logs d=`date +%Y-%m-%d` d90=`date -d'5 day ago' +%Y-%m-%d`   ##5天前 cd ${log_path} && cp access.log $log_path/backuplog/accesslog$d.log gzip -f $log_path/backuplog/accessl

nginx 日志分割

利用 crontab + shell 来实现nginx的 access log 按天切割,便于统计.具体实现如下: shell: #! /bin/sh NGINX_DIR=/data/apps/nginx LOGS_PATH=$NGINX_DIR/logs ## 获取昨天的 yyyy-MM-dd YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) ## 移动文件 mv ${LOGS_PATH}/access.log ${LOGS_PATH}/acces