0

ログファイルからユーザーエージェントを読み取って抽出するためのバッチファイルを作成しようとしていますが、これは次のコードで実行できますが、リクエストを作成したブラウザーの数値を指定する必要があり、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
4

1 に答える 1

1

ブラウザのわかりやすい名前を取得するには、たとえばpybrowscapをhttp://tempdownloads.browserscap.com/index.phpbrowscap.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 スクリプトを記述してすべての処理を行うこともできます。

于 2013-11-21T09:01:32.237 に答える