shell脚本实现网站日志分析统计】的更多相关文章

如何用shell脚本分析与统计每天的访问日志,并发送到电子邮箱,以方便每天了解网站情况.今天脚本小编为大家介绍一款不错的shell脚本,可以实现如上功能. 本脚本统计了:1.总访问量2.总带宽3.独立访客量4.访问IP统计5.访问url统计6.来源统计7.404统计8.搜索引擎访问统计(谷歌,百度)9.搜索引擎来源统计(谷歌,百度) 完整代码: #!/bin/bash log_path=/home/www.jquerycn.cn/log/access.log.1 domain="jquerycn…
统计2018/8/6 PV量 grep "06/Aug/2018" access.log|wc -l 统计当天8:00 到9:00的PV awk '$4>="[06/Aug/2018:21:59:57" && $4<="[06/Aug/2018:24:00:00" {print $0}' access.log|wc -l 统计2018年8月6日 一天内访问最多的10个IP(top10) grep '06/Aug/201…
网站运营人员对于死链这个概念一定不陌生,网站的一些数据删除或页面改版等都容易制造死链,影响用户体验不说,过多的死链还会影响到网站的整体权重或排名. 百度站长平台提供的死链提交工具,可将网站存在的死链(协议死链.404页面)进行提交,可快速删除死链,帮助网站SEO优化.在提交死链的文件中逐个手动填写死链的话太麻烦,工作中我们提倡复杂自动化,所以本文我们一起交流分享Apache服务中通过shell脚本整理网站死链,便于我们提交. 1.配置Apache记录搜索引擎 Apache是目前网站建设最为主流的…
https://www.cnblogs.com/wj033/p/3451618.html 正则日志分析统计 3 grep 'onerror'  v3-0621.log | egrep  -v '(\dG|WIFI)' grep 'onerror'  v3-0621.log | egrep -v 'S-TO=C' grep 'GET /view/' v3-0621page.log |  egrep -c  '2017:0|2017:1[0-5]|2017:16:[0-4]'    (2017:00…
网站日志分析项目案例(一)项目介绍:http://www.cnblogs.com/edisonchou/p/4449082.html 网站日志分析项目案例(二)数据清洗:当前页面 网站日志分析项目案例(三)统计分析:http://www.cnblogs.com/edisonchou/p/4464349.html 一.数据情况分析 1.1 数据情况回顾 该论坛数据有两部分: (1)历史数据约56GB,统计到2012-05-29.这也说明,在2012-05-29之前,日志文件都在一个文件里边,采用了…
网站日志分析项目案例(一)项目介绍:当前页面 网站日志分析项目案例(二)数据清洗:http://www.cnblogs.com/edisonchou/p/4458219.html 网站日志分析项目案例(三)统计分析:http://www.cnblogs.com/edisonchou/p/4464349.html 一.项目背景与数据情况 1.1 项目来源 本次要实践的数据日志来源于国内某技术学习论坛,该论坛由某培训机构主办,汇聚了众多技术学习者,每天都有人发帖.回帖,如图1所示. 图1 项目来源网…
网站日志分析项目案例(一)项目介绍:http://www.cnblogs.com/edisonchou/p/4449082.html 网站日志分析项目案例(二)数据清洗:http://www.cnblogs.com/edisonchou/p/4458219.html 网站日志分析项目案例(三)统计分析:当前页面 一.借助Hive进行统计 1.1 准备工作:建立分区表 为了能够借助Hive进行统计分析,首先我们需要将清洗后的数据存入Hive中,那么我们需要先建立一张表.这里我们选择分区表,以日期作…
Linux下添加shell脚本使得nginx日志每天定时切割压缩一 简介 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常时查日志,还是使用"GoAccess"等工具对日志进行分析都将会变得非常麻烦.因此,每天定时对nginx日志进行切割压缩就非常有必要了 二 实现 我的实现思路是每天晚上接近12点时定时执行脚本.其脚本内容就是将当前的nginx日志先按照当天日期进行重命名接着进行压缩,最后是新建空白的ngi…
shell脚本监控网站状态 #!/bin/sh date=`date +"%Y%m%d-%H%M"` title="status" contentFail="status is not ok:" contentSuccess="status is ok:" url="https://www.abc.com" status=`curl -m -s -I $url | grep HTTP | awk '{pri…
shell脚本调试打印日志问题 1. 需求 我们在编写脚本的时候,有时候需要做调试,便于我们定位问题,有时候等脚本上线之后,我们需要保留脚本执行过程中的记录.便于我们在出问题的时候,定位问题. 2. 如下脚本实现将脚本执行记录打印至日志文件 2.1脚本内容 [root@@@@]# vi cat_test.sh #!/bin/bash ####使用shell脚本的调试功能,将脚本执行过程中的内容打印至日志文件中 set -x -v exec 1>./test.log 2>&1 who |…
1.1 项目来源 本次要实践的数据日志来源于国内某技术学习论坛,该论坛由某培训机构主办,汇聚了众多技术学习者,每天都有人发帖.回帖,如图1所示. 图1 项目来源网站-技术学习论坛 本次实践的目的就在于通过对该技术论坛的apache common日志进行分析,计算该论坛的一些关键指标,供运营者进行决策时参考. PS:开发该系统的目的是为了获取一些业务相关的指标,这些指标在第三方工具中无法获得的: 1.2 数据情况 该论坛数据有两部分: (1)历史数据约56GB,统计到2012-05-29.这也说明…
0.上传日志文件到linux中,通过flume将文件收集到hdfs中. 执行命令/home/cloud/flume/bin/flume-ng agent -n a4 -c conf -f /home/cloud/flume/conf/a4.conf -Dflume.root.logger=DEBUG,console 1.建立hive表 create external table bbslog (ip string,logtime string,url string) partitioned by…
我们平时查日志,在测试环境,日志文件只有几个的情况下,我们可以通过找时间接近的文件然后根据关键词定位报错位置,大不了都查一遍,这都可以忍受.但是在实际的生产环境下,服务器集群部署,每天的日志非常多非常多,每台机器都会有几十个甚至多达上百个.数百个日志文件产生.遇到问题需要查询日志时,你会发现如果一个个文件去查,你会崩溃掉.因为这是很费时的重复性工作,而且也不一定能查到. 为了解决这种问题,大多数人会去编写shell脚本,用来检索日志文件,这样能筛掉很多无用文件,减轻查日志的工作量.服务器集群部署…
1.首先对linux操作系统的crontab命令进行熟悉和了解: .crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务. .Linux下的任务调度分为两类,系统任务调度和用户任务调度. a.系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘.日志清理等.在/etc…
1.获得访问前 10 位的 ip 地址 [root@apache ~]# cat access_log |awk '{print $1}'|sort|uniq -c|sort -nr|head -10 2.访问次数最多的文件或页面,取前 20 cat access.log|awk ‘{print $11}’|sort|uniq -c|sort -nr|head -20 3.列出传输最大的几个 exe 文件 cat access.log |awk ‘($7~/\.exe/){print $10 ”…
本文为博主原创,转载请注明出处: 最近在进行压测,为了观察并定位服务性能的瓶颈,所以在代码中很多地方加了执行耗时的日志,但这种方式只能观察,却在压测的时候,不太能准确的把握代码中某些方法的性能,所以想到写一个脚本,用来统计所加的日志中的平均耗时,最大耗时,最小耗时等等,这需要保证每行日志都是唯一的,代码中添加日志的方式如下: 为了便于验证,写了一个简单的日志文件 console.log ,内容如下: [root@iZ2ze10u5v2hhw1ezi52suZ shell]# cat consol…
删除log文件简单shell脚本 经常会遇到日志把磁盘占满的情况,引起低级故障.我个人在实际工作中,尝试了如下的方法,比较简单,而且快捷有效. #!/bin/bash # /root/log_delete.sh dir_log_1="/home/log/log1" dir_log_2="/home/log/log2" dir_log_3="/home/log/log3" if [ -d "${dir_log_1}" ]; th…
shell脚本如何优雅的记录日志信息,下面让我们一步一步,让shell脚本的日志也变得高端起来,实现如下功能 ①设定日志级别,实现可以输出不同级别的日志信息,方便调试 ②日志格式类似为:[日志级别] 时间 funcname:函数名 [lineno:行号] 日志信息 ③不同级别,设定不同颜色 ④让其变为函数库文件,重用代码 下面看看我用shell记录日志的进化之路 1.最简单的日志记录方式 对于刚入门的同学,记录日志一般用echo加重定向方式,这应该是最原始的方式了^_^ echo "log me…
本文只展示核心代码,完整代码见文末链接. Web Log Analysis 提取需要的log信息,包括time, traffic, ip, web address 进一步解析第一步获得的log信息,如把ip转换为对应的省份,从网址中提取出访问内容和内容ID,最后将信息转换为parquet格式. (1)按日期和内容(video)的ID进行分组,并根据访问次数进行倒序排序. (2)按日期,内容(video)的ID和省份进行分组,并根据访问次数排名取前3. 最后将(1)和(2)数据写入MySQL. 注…
vim /data/runlog.sh                                                  #编辑一个 shell 脚本 #!/bin/bash LOGPATH=/usr/local/nginx/logs/z.cn.access.log                  //日志的路径 BASEPATH=/data/$(date -d yesterday +%Y%m)   #echo $BASEPATH                        …
定期删除日志: 然后建立清除日志文件的shell脚本,文件名为clean_log只保留最近三天的日志     #! /bin/bashlogdir=/var/log/httpdcd ${logdir}declare -i filesum=`ls access_log.* | wc -l`declare -i delnum=$filesum-3if [ "${delnum}" -ge 1 ];thenrm -rf `ls -tr access_log.* | head -${delnum…
由于过多的日志很占用磁盘空间,今天经理让我写一个脚本删除多余的日志.和es索引 定时删除试根据crontab+shell脚本实现的 crontab配置目录 /var/spool/cron/ 该目录下存放的是每个用户(包括root)的crontab任务,文件名以用户名命名 /etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本. crontab操作步骤 Step-One : 编辑任务脚本[分目录存放][ex: backup.sh] Step-Two : 编辑定时文件[命名规…
一个执着于技术的公众号 该程序使用场景说明:主要用于Linux服务器监控程序日志,如出现关键字异常则触发相应的动作或告警操作,通知到邮件联系人. 一.安装邮件服务 1.解压 tar -jxf mailx-12.4.tar.bz2 -C /usr/src/ && cd /usr/src/mailx-12.4/ 2.编译 make install UCBINSTALL=/usr/bin/install 异常编译报错-1 异常报错解决方法 下载mailx补丁文件"mailx-12.4-…
最近由于ADSL代理总出问题,导致爬虫服务器总被目标网站封,由于请求内容总是空,前端APP获取不到想要的内容就一直刷新,导致爬虫服务器请求更加繁忙. 爬虫服务器每执行完一个流程,都会给统计服务器Post一条数据,这不统计服务器访问量突然倍增,导致响应慢,部分统计页面也打不开. 遂分析一下IIS 日志: 下载安装 Log Parser , 1, 查看命令: C:\Program Files\Log Parser 2.2\LogParser.exe -i:IISW3C -o:DATAGRID "SE…
前面一篇应该算是比较详细的介绍了spark的基础知识,在了解了一些spark的知识之后相必大家对spark应该不算陌生了吧!如果你之前写过MapReduce,现在对spark也很熟悉的话我想你再也不想用MapReduce去写一个应用程序了,不是说MapReduce有多繁琐(相对而言),还有运行的效率等问题.而且用spark写出来的程序比较优雅,这里我指的是scala版的,如果你用java版的spark去写一个应用程序,对比scala版的,想必你肯定会爱上scala这门语言的,哈哈哈(以上纯属个人…
转自:http://www.cnblogs.com/lishun1005/p/6054816.html 鉴于在调试logback和log4j的文件切割一直无法成功,随性用shell写个脚本用来切割tomcat下的日志文件(大家如果有在logback或log4j使用文件切割成功的话,可以留下使用方式,先谢谢了) 1:废话少说,直接贴上脚本: #!/bin/sh log_dir=/var/log/tomcat monitor_file=$1 #tomcat目录下的catalina.out文件的绝对路…
实现的功能 git 根据传入的三个参数:起始统计日期.结束统计日期.git仓库地址. 脚本统计的是git仓库内的所有分支的log信息. 脚本统计的是指定时间段内.每一个提交人指定的git地址的所有分支里的提交代码行的新增情况. 其中代码行可分别统计出:新增的有效代码行数.新增的空行数.新增的注释行数. 并且脚本中还做了相应的提交历史“去重”,避免了这种情况:“某个分支是以其他分支为基础拉出来的,所以会将其他分支的git历史log一并复制,导致log历史重复了两份”,在统计时会去重,多次重复的gi…
自定义日志函数和前期变量 # adirname - return absolute dirname of given file adirname() { odir=`pwd`; cd `dirname $1`; pwd; cd "${odir}"; } MYNAM=`basename "$0"` MYDIR=`adirname "$0"` MYHOME="/home/shell/script" MYLOG_PATH="…
话不多少,直接上代码: #!/bin/bash workdir=("/home/Tax_Punish_Ret/log_txt") #可填写多个路径, 用空格隔开 # 查找日志文件 for wdir in ${workdir[@]} do echo filepath is $wdir if [ $wdir = ${workdir[0]} ] ;then fileStr=`find $wdir/*.log` echo files is $fileStr else fileStr=`find…
#!/bin/bash #set java envexport JAVA_HOME=/wocloud/java/jdk1.7.0_45export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATH #set hadoop envexport HADOOP_HOME=/home/hadoop/app/hadoop-2.6.4ex…