小知识:shell脚本定时统计Nginx下access.log的PV并发送给API保存到数据库

1,统计PV和IP

统计当天的PV(Page View)

?
1
cat access.log | sed -n /`date “+%d\/%b\/%Y”`/p |wc -l

统计某一天的PV

?
1
cat access.log | sed -n /20\/Sep\/2018/p | wc -l

查看日志中访问次数最多的前10个IP

?
1
cat access.log.1 |cut -d -f 1 | sort |uniq -c | sort -nr | awk {print $0 } | head -n 10

查看日志中访问次数超过1000次的前10个IP

?
1
cat access.log.1 |cut -d -f 1 | sort |uniq -c | sort -nr | awk {if($1>1000) print $0 } | head -n 10

2,curl发送数据

使用curl发送GET请求

curl http://127.0.0.1:8080/login?admin&passwd=12345678

使用curl发送POST请求

?
1
curl -d “user=admin&passwd=12345678” http://127.0.0.1:8080/login

使用curl发送POST的JSON数据

?
1
curl -H “Content-Type:application/json” -X POST -d {“user”: “admin”, “passwd”:”12345678″} http://127.0.0.1:8000/login

使用curl发送动态参数POST请求

?
1
2
curl -i -X POST -H “Content-type:application/json” -d {“ATime”:”$atime”,”BTime”:”$btime”} $url
curl -i -X POST -H “Content-type:application/json” -d {“ATime”:”${atime}”,”BTime”:”{$btime}”} ${url}

3,shell脚本统计并发送

?
1
2
3
4
5
6
7
8
#!/bin/bash
log_path=/var/log/nginx/access.log
domain=”http://127.0.0.1:8080/data/count”
log_date=`date “+%d/%b/%Y”`
echo ${log_date}
total_visit=`cat ${log_path} | grep $log_date|wc -l`
curl -d “count=${total_visit}” ${domain}
echo $total_visit

4,服务器端接受并保存到数据库

?
1
2
3
4
@RequestMapping(value = “/count”)
public void count(String count){
//业务代码
}

总结

以上所述是小编给大家介绍的shell脚本定时统计Nginx下access.log的PV并发送给API保存到数据库,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

原文链接:https://www.cnblogs.com/i-tao/archive/2018/09/18/9668113.html

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:nginx 服务绑定域名的方法

2023-4-13 2:00:43

建站知识

小知识:Linux 中断子系统:GIC 中断控制器

2023-4-13 2:12:02

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索