/page1 および /page2 にアクセスした訪問者

/page1 および /page2 にアクセスした訪問者

私のApacheログファイルにはother_vhosts_access.log次のようなものがあります。

www.example.com:80 12.34.56.78 - - [01/Aug/2017:00:42:18 +0200] "GET /page1.html HTTP/1.1" 200 1542 " "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"
www.example.com:80 99.99.99.99 - - [02/Aug/2017:06:19:44 +0200] "GET /test.jpg HTTP/1.1" 200 90749 "" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"
www.anotherwebsite.com:80 11.11.11.11 - - [04/Aug/2017:09:39:01 +0200] "GET /test.jpg HTTP/1.1" 200 90749 "" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"

...
www.example.com:80 12.34.56.78 - - [23/Aug/2017:01:12:11 +0200] "GET /somethingelse2.html HTTP/1.1" 200 21161 "http://www.example.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"

訪問した訪問者を探したいです。/page1.html そして /somethingelse2.html、この例では12.34.56.78です。

私が使用している場合:

grep page1.html other_vhosts_access.log

残りの行にはが含まれていないため、出力をフィルタリングすることはできませんsomethingelse2.html

特定のページ+他のページを訪問した訪問者をどのように見つけることができますか?

ベストアンサー1

bashgrepおよびawk:を使用してください。

page1.htmlファイルに関連するすべてのIP番号を取得する方法は次のとおりです。

awk '/page1\.html/ { print $2 }' log

たとえば、データが出力されます12.34.56.78

これは、そのIPアドレスを含むすべてのログエントリを取得するために使用できます。

grep -wF -f <( awk '/page1\.html/ { print $2 }' log ) log

これはコマンドの結果をawkパターンとして使用し、ログファイルを再スキャンしてそのIPを含むすべての行を出力します。これにより、例の最初の行と最後の行が返されます。

フラグは、次のように解釈されるパターン(IPアドレス)を-w知らせるために使用されます。-Fgrepgrep固定文字列-F)これを含む文字列のみを返します。フルワード-w)。これは12.34.56.789、固定文字列パターンが一致しないことを意味します12.34.56.78

この結果から、削除するpage1.htmlラインについて

grep -wF -f <( awk '/page1\.html/ { print $2 }' log ) log | grep -vF 'page1.html'

これで、ページ訪問者によって生成されたすべてのログエントリがあります(ページ自体page1.htmlではありません)。page1.html

特定のプロジェクトのアイテムを入手するには特別な別のページを選択し、最後のページgrep -vF 'page1.html'grep -F 'otherpage.html'


より強力なログ解析と分析ツールがあると確信していますが、あるとしてもよくわかりません(私はログ解析を頻繁に行いません)。

おすすめ記事