网站日志分析,统计爬虫数量的shell命令 -j9九游会真人游戏第一品牌

有时需要分析网站日志文件,统计诸如爬虫数量的需求,但大文件直接下载在编辑器中打开太卡。

以下用shell命令进行分析

以下假设日志文件名为:eyunzhu.com-access_log

统计谷歌爬虫数量的方法

#在网站日志目录下执行命令:
#统计谷歌爬虫数量的方法
cat eyunzhu.com-access_log | grep 'googlebot'  | wc -l

将日志中所有ip去重复后保存到文件

# 匹配ip地址 排序后去重复 输出到文件ip_uniq.txt
# uniq只能检测到邻近的重复行,所以我们要先进行排序,然后再查找重复行
cat eyunzhu.com-access_log | egrep -o '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}' | sort | uniq -d > ip_uniq.txt

统计所有请求情况包含百度蜘蛛、谷歌蜘蛛、必应蜘蛛等及各自所占比例

# 整体命令如下:
logfile=eyunzhu.com-access_log \
allrequest=`cat $logfile | wc -l`; \
apirequest=`cat $logfile | grep '/aso'| wc -l`; \
baidu=`cat $logfile | grep 'baidu.com/search/spider'  | wc -l`; \
google=`cat $logfile | grep 'googlebot'  | wc -l`; \
sogou=`cat $logfile | grep 'sogou web spider'  | wc -l`; \
bing=`cat $logfile | grep 'bing.com/bingbot'  | wc -l`; \
semrush=`cat $logfile | grep 'semrush.com/bot'  | wc -l`; \
ahrefs=`cat $logfile | grep 'ahrefs.com/robot'  | wc -l`; \
yisou=`cat $logfile | grep 'yisouspider'  | wc -l`; \
yandex=`cat $logfile | grep 'yandexwebmaster'  | wc -l`; \
duckduckgo=`cat $logfile | grep 'duckduckgo'  | wc -l`; \
totalspider=$((baidu google sogou bing semrush ahrefs yisou yandex duckduckgo));\
otherrequest=$(($allrequest - $apirequest - $totalspider));\
echo -e "#####\r\nbaidu:$baidu\r\n\
google:$google\r\nsogou:$sogou\r\nbing:$bing\r\nsemrush:$semrush\r\n\
ahrefs:$ahrefs\r\nyisou:$yisou\r\nyandex:$yandex\r\n\
duckduckgo:$duckduckgo\r\n\r\n\
总请求数:$allrequest\r\n\
api接口请求:$apirequest `awk 'begin{printf "%.3f%%\n",('$apirequest'/'$allrequest')*100}'` \r\n\
爬虫请求数:$totalspider `awk 'begin{printf "%.3f%%\n",('$totalspider'/'$allrequest')*100}'`\r\n\
其他请求数:$otherrequest `awk 'begin{printf "%.3f%%\n",('$otherrequest'/'$allrequest')*100}'`\r\n\
\r\n#####\r\n"

执行结果如下:

网站日志爬虫数量分析


发表评论

目前评论:0