广告
返回顶部
首页 > 资讯 > 操作系统 >如何理解linux Nginx日志脚本
  • 360
分享到

如何理解linux Nginx日志脚本

2023-06-09 20:06:05 360人浏览 泡泡鱼
摘要

本篇内容主要讲解“如何理解linux Nginx日志脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解linux Nginx日志脚本”吧!任务计划 crontab -l 1 15 * *

本篇内容主要讲解“如何理解linux Nginx日志脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解linux Nginx日志脚本”吧!

任务计划
crontab -l
1 15 * * * /home/dongnan/sh/split.sh >> /home/dongnan/sh/cron.log 2>&

nginx 日志
ls /var/log/nginx/
20130730-access.log.gz  20130801-access.log.gz  20130803-access.log.gz
20130730-error.log.gz   20130801-error.log.gz   20130803-error.log.gz
20130731-access.log.gz  20130802-access.log.gz access.log
20130731-error.log.gz   20130802-error.log.gz   error.log

shell 脚本
cat split.sh

代码如下:

#!/bin/bash
#script_name:nginx_log.sh
#description:nginx-log deleted/rotate/compress
#last_update:20130725 by zongming

#Nginx
#Signal Action
#TERM, INT Terminate the server immediately
#QUIT Stop the server
#HUP Configuration changes, start new workers, graceful stop of old workers
#USR1 Reopen log files
#USR2 Upgrade the server executable
#WINCH Graceful Stop (parent process advise the children to exit)

  
#variables
log_dir=/var/log/nginx/
log_date=$(date +"%Y%m%d")
nginx_pid=/var/run/nginx.pid
keep_days=30

#old_log
find "$log_dir" -name "*\.log.gz" -type f -mtime +"${keep_days}" -exec rm -rf {} \;

#rename_log
for log_name in `ls "$log_dir" | awk '/.log$/'`;do
    if [ -e "${log_dir}${log_date}-${log_name}" ];then
        echo "${log_dir}${log_date}-${log_name} Already exists" && continue
    else
        /bin/mv "${log_dir}${log_name}" "${log_dir}${log_date}-${log_name}"
        /bin/gzip "${log_dir}${log_date}-${log_name}"
    fi
done

#new_log
/bin/kill -USR1 $(cat $nginx_pid) && /bin/sleep 1

nginx日志切割脚本:

vi /root/cutlog.sh

代码如下:

#!/bin/bash
I=`ps aux | grep nginx | grep root | grep -v 'grep nginx' | awk '{print $14}'`    #查找nginx进程
if [ $I == /usr/local/nginx/sbin/nginx ];then
ACCLOG=`cat /usr/local/nginx/conf/nginx.conf | grep  ' access_log' | awk '{print $2}'`  #如果nginx进程在,就找到配置文件,读取accesslog路径
ERRLOG=`cat /usr/local/nginx/conf/nginx.conf| grep  ^error  | awk '{print $2}'| cut  -d";" -f1`  #错误日志的路径
ls $ACCLOG     #查看是否有此文件
if [ $? -eq 0 ];then    #如果有
mv $ACCLOG  $ACCLOG.`date -d "-1 day" +%F`  #重命名当前日志
mv $ERRLOG $ERRLOG.`date -d "-1 day" +%F`
touch $ACCLOG    #创建空日志
touch $ERRLOG
chown nginx:root  $ACCLOG   #修改属主
chown nginx:root  $ERRLOG
[ -f /usr/local/nginx/logs/nginx.pid ] && kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`     #判断进程,并重新加载(这里的kill -USR1会使nginx将新产生的日志写到刚创建的新日志里面。)
/mnt/logs/checklog.sh $ACCLOG.`date "-1 day" +%F` #这个是日志分析脚本
gzip $ACCLOG.`date -d "-1 day" +%F`  #压缩日志
gzip $ERRLOG.`date -d "-1 day" +%F`

mv  $ACCLOG.`date -d "-10 day" +%F`.*  /mnt/history.nginx.log/   #将10天前的老日志清理到其他地方,(你们如果想删除的可以自己改成删除)
mv  $ERRLOG.`date -d "-10 day" +%F`.*  /mnt/history.nginx.log/
fi
fi

nginx日志分析脚本:

vi /mnt/logs/checklog.sh

代码如下:

#!/bin/bash
echo -e  "####################`date +%F`" >> /mnt/logs/400.txt
echo -e  "####################`date +%F`" >> /mnt/logs/URL.txt
echo -e  "####################`date +%F`" >> /mnt/logs/IP.txt
cat $1 | wc -l >> /mnt/logs/IP.txt   #分析IP
cat  $1  | awk -F'"'  '{print $3}' | awk '{print $1}' | sort | uniq -c| sort -rn >  /mnt/logs/CODE.txt   #分析返回值
cat $1 |  awk   '{print $1}' |  sort | uniq -c| sort -rn | head -n20  >> /mnt/logs/IP.txt 
N=`cat /mnt/logs/CODE.txt | wc -l`
for I in $(seq 1 $N)
do
M=`head -n$I /mnt/logs/CODE.txt | tail -n1 | awk '{print $2}'`
if [ $M -ge 400 ]
then

echo "#####FIND $M###############">>/mnt/logs/400.txt   #分析错误请求
cat $1 | grep "\" $M "  | grep -v ' "-" "-" - ' | sort | awk '{print $1 $2 $3 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 $16 $17 $18 $19 $20 $21}' | sort | uniq -c  | sort -rn  | head -n5 >> /mnt/logs/400.txt
fi
done
cat  $1 | grep -v ' "-" "-" - ' | awk -F'T' '{print $2}' | awk -F'?' '{print $1}' | sort |awk '{print $1}' | sed  's/\(\/review\/file\/download\/\).*/\1/g'   | sort | uniq -c | sort -rn | head -n20 >> /mnt/logs/URL.txt

到此,相信大家对“如何理解linux Nginx日志脚本”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 如何理解linux Nginx日志脚本

本文链接: https://www.lsjlt.com/news/257614.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何理解linux Nginx日志脚本
    本篇内容主要讲解“如何理解linux Nginx日志脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解linux Nginx日志脚本”吧!任务计划 crontab -l 1 15 * *...
    99+
    2023-06-09
  • linux Nginx 日志脚本
    任务计划 crontab -l 1 15 * * * /home/dongnan/sh/split.sh >> /home/dongnan/sh/cron.log 2>& nginx 日...
    99+
    2022-06-04
    脚本 日志 linux
  • linux中用shell脚本对tomcat和nginx做日志切割
    线上服务器一般都会遇到各种各样的日志切割。之前一直没有发布类似详细脚本文章,这次就弥补下网站相关内容。万变不离其宗,下边简单讲解一下两个日志切割,其他服务日志的切割也可以这样实现。Tomcat日志catalina.out切割小脚本...
    99+
    2023-06-05
  • linux自动清理日志脚本分享
    1.做自动部署系统时精简的一个脚本,主要功能是清理所有目录的日志 2.根据给定日志目录,删除时间 结合crontab进行清理日志,清理完成后,后在/var/log/deltelog/ 生成按照月的清理日志 ...
    99+
    2022-06-04
    脚本 日志 linux
  • 如何使用shell脚本对Nginx日志进行切分
    这篇文章将为大家详细讲解有关如何使用shell脚本对Nginx日志进行切分,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:1.日志格式默认的日志格式: mainlog_format ma...
    99+
    2023-06-09
  • 如何理解shell脚本nginx日志访问次数最多及最耗时的页面
    本篇内容介绍了“如何理解shell脚本nginx日志访问次数最多及最耗时的页面”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!当服务器压力比较...
    99+
    2023-06-09
  • 如何实现shell版Nginx日志蜘蛛爬取查看脚本
    本篇内容介绍了“如何实现shell版Nginx日志蜘蛛爬取查看脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!#!/bin/bash&nb...
    99+
    2023-06-09
  • 如何使用 BASH 脚本处理日志文件?
    BASH 脚本是一种强大的工具,可以帮助我们快速处理大量的日志文件。在本文中,我们将介绍如何使用 BASH 脚本处理日志文件,并演示一些常见的技巧和技术。 首先,我们需要了解一些基本的 BASH 脚本语法。在 BASH 脚本中,我们可以使用...
    99+
    2023-07-09
    自然语言处理 bash 日志
  • Linux shell脚本输出日志笔记整理(必看篇)
    1、日志方法简介: #日志名称 log="./upgrade.log" #操作日志存放路径 fsize=2000000 #如果日志大小超过上限,则保存旧日志,重新生成日志文件 ex...
    99+
    2022-06-04
    必看 脚本 笔记
  • 如何理解Linux Shell脚本
    本篇内容介绍了“如何理解Linux Shell脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、Shell简介诸多类Unix操作系统的设...
    99+
    2023-06-09
  • Linux下如何实现Oracle归档日志自动清理脚本代码
    这篇文章主要介绍Linux下如何实现Oracle归档日志自动清理脚本代码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!代码如下:#!/bin/sh export BACK_DATE=`date +%Y%m%d` ex...
    99+
    2023-06-09
  • vbs如何实现AD日志开启脚本nableKerbLog的脚本
    这篇文章将为大家详细讲解有关vbs如何实现AD日志开启脚本nableKerbLog的脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Dim wsObj Set wsObj&...
    99+
    2023-06-08
  • Linux下Oracle归档日志自动清理脚本代码(sh)
    #!/bin/sh export BACK_DATE=`date +%Y%m%d` export BACKUP_PATH=/home/oracle/dbbak echo `mkdir -p ${BACKUP...
    99+
    2022-06-04
    脚本 代码 日志
  • 如何理解Linux的系统日志
    本篇内容主要讲解“如何理解Linux的系统日志”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解Linux的系统日志”吧!syslogd & klogd   --...
    99+
    2023-06-13
  • 如何通过shell脚本查看k8s日志
    这期内容当中小编将会给大家带来有关如何通过shell脚本查看k8s日志,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。查看日志:kubectl logs -f podName --tail 100比如我们如...
    99+
    2023-06-26
  • 如何使用PHP脚本在Linux环境下进行日志记录
    在Linux环境下使用PHP脚本进行日志记录是一种常见而有效的方法。本文将介绍如何使用PHP脚本在Linux环境下进行日志记录,并提供具体的代码示例。创建日志文件首先,在Linux系统中创建一个用于存储日志的文件夹。可以使用以下命令:mkd...
    99+
    2023-10-21
    Linux环境 PHP日志记录 脚本编程
  • 如何在Linux系统中通过PHP脚本实现日志分析
    引言:日志分析对于网站运营和系统管理来说是非常重要的一项任务。通过对日志进行分析,我们可以了解用户行为、网站访问情况以及系统运行状态等信息,从而为网站优化和系统调整提供依据。在Linux系统中,可以使用PHP脚本来实现日志分析,并根据具体需...
    99+
    2023-10-21
    Linux系统 日志分析 关键词: PHP脚本
  • 如何在Linux系统中利用PHP脚本进行日志监控
    随着Linux系统的广泛应用,对于系统的监控和日志分析变得越来越重要。而其中,使用PHP脚本进行日志监控是一种常见的方式。本文将介绍如何使用PHP脚本实现简单的日志监控,并提供具体的代码示例。一、创建PHP脚本文件首先,在Linux系统上创...
    99+
    2023-10-21
    Linux系统 日志监控 关键词: PHP脚本
  • 如何理解Linux Shell脚本编程
    本篇内容介绍了“如何理解Linux Shell脚本编程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!通常,当人们提到“shell脚本语言”时...
    99+
    2023-06-09
  • sqlserver如何实现查看备份日志脚本
    这篇文章主要介绍了sqlserver如何实现查看备份日志脚本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 s...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作