1:nginx的访问日志按日期分割,也就是每天的零点把前一天的访问日志以日期的形式备份,然后重新打开一份访问日志,这里的kill -USR1 $pid 重新打开访问日志,必须得把原来的mv,如果存在的话,还是在原来的基础上累加。 脚本:#!/bin/bashlocal_path=/usr/local/nginx/logscd $local_pathif [ !-d date_log ] ;thenmkdir date_log
fimv access_nginx.log $local_path/date_log/access_`date -d "yesterday" +%Y%m%d`
nginx_pid=`p...
一、Nginx的日志格式和日志变量 Nginx跟Apache一样,都支持自定义输出日志格式,在进行Nginx日志格式定义前,先来了解一下关于多层代理获取用户真实IP的几个概念。 remote_addr:表示客户端地址,但有个条件,如果没有使用代理,这个地址就是客户端的真实IP,如果使用了代理,这个地址就是上层代理的IP。 X-Forwarded-For:简称XFF,这是一个HTTP扩展头,格式为 X-Forwarded-For: client, proxy1, proxy2,如...
一:nginx访问日志
日志格式vim /usr/local/nginx/conf/nginx.conf //搜索log_format$remote_addr 客户端ip(公网ip)$http_x_forwarded_for 代理服务器的ip$time_local 服务器本地时间$host 访问主机名(域名)$request_uri 访问的url地址$status 状态码$http_referer referer$http_user_agent user_agent除了在主配置...
下载apache-flume-1.7.0-bin.tar.gz,用tar -zxvf解压,在/etc/profile文件中增加设置:export FLUME_HOME=/opt/apache-flume-1.7.0-bin
export PATH=$PATH:$FLUME_HOME/bin修改$FLUME_HOME/conf/下的两个文件,在flume-env.sh中增加JAVA_HOME:JAVA_HOME=/opt/jdk1.8.0_121最重要的,修改flume-conf.properties文件:# 配置Agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1# 配置Source
a1.sources.r1.type = exec
a1.sourc...
一、利用crontab 切割nginx日志文件(linux平台下)cat nginx_log.sh #!/bin/bash
# 零点执行该脚本
# Nginx 日志文件所在的目录
LOGS_PATH=/data/opt/nginx/logs
## 获取昨天的 yyyy-MM-dd
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
# 移动文件
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
# 向 Nginx 主进程发送 USR1 信号。USR1 信号是重新打开日志文件
kill -USR1 $(cat /data/opt/nginx/logs/nginx.pi...
1.统计ip访问量前10的 ip地址 cat access.log | awk ‘{print $1}‘ | sort | uniq -c | sort -nr | head -n 102.查看当天ip访问量统计 cat access.log |grep "21/Apr/2016" |awk ‘{print $1}‘|sort|uniq -c|sort -nr3.查看访问前10的页面统计 cat access.log | grep "21/Apr/2016" | awk ‘{print $7}‘ | sort | uniq -c | sort -nr | head -n 104.查看当天访问次数最多的时间段 tail -n 1000 access.log | awk ‘{pri...
作为一个初中级php程序员,也许懂一点Linux知识,下面操作下nginx日志切割 1 #!/bin/bash
2 base_path=/www/lisa/logs/lisa.log.log #nginx日志
3 log_path=/data/logs #备份目录
4 date=$(date -d yesterday +%Y%m%d%H).log #获取日期时间作为文件名
56 mv $base_path $log_path/$date #nginx日志更改名字
78 kill -USR1 `cat /usr/local/nginx/logs/nginx.pid` #-USER1发送信号给nginx重新打开日志当执行命令“kill -USR...
1. 安装依赖yum install glib2 glib2-devel GeoIP-devel ncurses-devel zlib zlib-devel -y
wget https://github.com/maxmind/geoip-api-c/releases/download/v1.6.11/GeoIP-1.6.11.tar.gz
tar -zvxf GeoIP-1.6.11.tar.gz
cd GeoIP-1.6.11
./configure
make && make install2. 安装goaccesswget https://tar.goaccess.io/goaccess-1.3.tar.gz tar -xzvf goaccess-1.3.tar.gz cd goaccess-1.3 ./configure --enable-utf8 --enable-...
在access.log中有大量400错误,并以每天几百M的速度增加,占用大量空间.tail -f
/opt/nginx/logs/access.log 116.236.228.180 - -
[15/Dec/2010:11:00:15 +0800] "-" 400 0 "-" "-"
116.236.228.180 - - [15/Dec/2010:11:00:15 +0800] "-" 400 0 "-"
"-" 116.236.228.180 - - [15/Dec/2010:11:00:15 +0800] "-"
400 0 "-" "-" 116.236.228.180 - - [15/Dec/2010:11:00:15
+0800] "-" 400 0 "-" "-" 116.236.228...
1. 不允许多个Host请求头2. 忽略额外的Transfer-Encoding请求头3.修复在HTTP/2时的socket泄露4.修复使用OCSP时,工作进程中可能会发生分段错误5.更改使用“ error_page”指令重定向了494时,把状态码400换成4946.修复在njs模块和使用 “ aio”指令socket泄露原文:https://www.cnblogs.com/taoshihan/p/12680081.html
nginx是没有以日期格式作为文件名来存储的,所有的日志都是以一个名字来存储,长久以来日志文件会变得很大。这样非常不利于分析。 虽然nginx没有这个功能但我们可以写一个小脚本配合计划任务来达到这样的效果。 脚本代码如下(cutn/usr/local/tool/cutnginxlog.sh) #!/bin/sh# Program:# Auto cut nginx log script.# 2012/2/5 b4dboy First release QQ:137 51 52 53 # nginx日志路径 www.2cto.comLOGS_PATH=/var/wwwroot/bb...
12.10 Nginx访问日志·日志格式:[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf搜索log_format(虽然红框中有三行,但实际上时一行配置,以分号为结尾)combined_realip 定义日志格式名字,此处定义成什么,那么后面引用时就要写成什么公网ip(出口ip)·除了在主配置文件nginx.conf里定义日志格式外,还需要在虚拟主机配置文件中增加access_log /tmp/1.log combined_realip(combined_realip就是nginx.conf中的日志格式名...
问题nginx日志默认记录在一个文件access.log中,时间长了会导致日志文件特别大,甚至磁盘占满。解决方案使用以下方法,将access.log文件每天一个,然后清过15天以前的文件。方法创建clearNginxLog.sh文件#!/bin/bashLOG_PATH="/data/nginx/log/"
save_days=1
YESTERDAY=$(date -d "yesterday" +%Y%m%d)
echo "———————————————–"
echo "运行时间:[$(date +"%Y-%m-%d %H:%M:%S")]"
#删除指定日期以前的文件
echo "删...
1、安装logrotate是Linux系统自带,无需安装2、配置进入【/etc/logrotate.d/nginx】文件修改配置# 需要备份的日志路劲,一个或多个都可以
/data/logs/nginx1/*.log
/data/logs/nginx2/*.log
{dailyrotate 5missingokdateextcompressnotifemptysharedscriptspostrotate[ -e /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`endscript
}3、测试logrotate -vf /etc/logrotate.d/nginx 执行以上命令,是否得到自己预期效果...
nginx 日志切割脚本#!/bin/bash
#这个脚本是用来切割nginx日志 根据自己情况进行必要的切割:
set -e
logs_path="/data/wwwlogs/"
oldlogs_path="/data/wwwlogs/ngx_oldlogs/"
hos="ngx128"
old_nginx=`mv ${logs_path}access.log ${logs_path}access_$(date -d "yesterday" +"%Y%m%d")_$hos.log`
for i in `ls $logs_path/* | egrep -v "*.gz|log"`
do
mv "$i" "$i"_${hos}_$(date -d "yesterday" +"%Y%m%d")
mv "$i"_${hos}_...