使えばいいんだけど、まぁシェル芸でもできるんやで。agoやりたいことログの抽出URLデコードGoogleでどんな検索をして、このサイトに来たかを知るツール(シェルスクリプト)やりたいこと¶まず、こういうタイプのApacheのログがある。Firefox/40.0"このログからは、googleで検索して、このページに来たことがわかる。Refererに記録されている。マルチバイト文字は、すべからくURLエンコードされていて、そのままでは読めない。ログから、それを抽出して、デコードして表示してみましょう。Analyticsを使えばいいという話もあるけれど、シェル芸の練習でやってみます。ログの抽出¶ここがシェルスクリプトの真骨頂である。該当のログを出力してみる。/var/log/httpd/access_log全部のログが表示されちゃう。"google"が含まれるログに絞り込む。googleそこから、"Googlebot"を含まないログに絞り込む。Googlebotそこから、q=&"を含まないログに絞り込む。"q=&"そこから、"q=cache"を含まないログに絞り込む。"q=cache"そこから、"q="を含むログに絞り込む。q=環境の違いで、微妙に上手くいかない人もいるかと思うが、適宜調整してください。URLデコード¶URLデコードは、実はワンライナーで実現できる。"ここにURLエンコードデータ"上の方に書いたログで試してみよう。対象は、以下の部分である。%E7%94%BB%E5%83%8F+%E3%83%87%E3%83%BC%E3%82%BF+%E9%9A%A0%E8%94%BD+ctfほい。ctfさて、ログから該当部分を抽出するにはどうするか。$1}'実際に試してみよう。$1}'%E7%94%BB%E5%83%8F+%E3%83%87%E3%83%BC%E3%82%BF+%E9%9A%A0%E8%94%BD+ctfちゃんと抽出できてますね。Googleでどんな検索をして、このサイトに来たかを知るツール(シェルスクリプト)¶それで、こんなシェルスクリプトを作ってみた。時系列でどんな検索ワードで飛んできたかわかる。