今天准备分析nginx日志,需要查询访问日志中IP的归属地,开始用的一个简短shell,如下:
########################################################################
# File Name: loganalysis.sh
# Author:Jeson
# mail:iaskjob@163.com
# Created Time: Tue Sep 15 15:19:41 2015
#========================================================================
#!/bin/bash
#
accesslog_dir=
for IPlist in`cat ${accesslog_dir} |awk '{print $1}'|sort |uniq -c|sort -rn`
do
echo ${IPlist}
curl -s "http://ip138.com/ips138.asp?ip=${IPlist}&action=2"| iconv -f gb2312 -t utf-8|grep '<ul class="ul1"><li>'
done
用这个单纯的shell来实现,效果并不是很理想,而且输出内容咱们不能直观想到的结果,网上搜索出了一个开源工具,叫做“哪里”nali,比较不错安装方法如下:
tar -xvf nali-0.2.tar.gz
cd nali-0.2/
./configure
make
make install
通过配戴的这个命令,更新ip库。
nali update
通过一条命令,得到想要的分析结果:
cat /opt/app/jeson/logs/access.log | awk '{print $1}' | sort | uniq -c | nali | sort -rnk1 | head -n 20