我正在尝试编写一个批处理文件,用于从日志文件中读取和提取用户代理,我可以使用以下代码,但我需要提供发出请求的浏览器的数字计数和使用gnu-plot ,绘制每个浏览器请求数量的条形图。我有点担心浏览器请求一点帮助或方向将不胜感激。
干杯。
#!/bin/bash
# All we're doing here is extracting the user agent field from the log file and 'piping' it through some other commands. The first sort is to # enable uniq to properly identify and count unique user agents. The final sort orders the result by number and name (both descending).
awk -F\" '{print $6}' access.log | sort | uniq -c | sort -fr > extracteduseragents.txt
答案 0 :(得分:1)
要获得更友好的浏览器名称,您可以使用例如pybrowscap以及http://tempdownloads.browserscap.com/index.php的browscap.csv
文件。
然后您可以使用类似以下sanitize_ua.py
的脚本:
#!/usr/bin/env python
import sys
from pybrowscap.loader.csv import load_file
browscap = load_file('browscap.csv')
for ua in sys.stdin:
browser = browscap.search(ua)
if browser:
print "'{} {}'".format(browser.name(), browser.version())
从命令行运行,如
awk -F\" '{print $6}' access.log | sort | python sanitize_ua.py | uniq -c | sort -fr
当然,在uniq
之前搜索所有用户代理是非常低效的,但它应该显示工作原理。当然,您也可以编写一个python脚本来完成所有处理。