<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>HWPS! &#187; unix</title>
	<atom:link href="http://holy.enyou.org/tag/unix/feed/" rel="self" type="application/rss+xml" />
	<link>http://holy.enyou.org</link>
	<description>HoLY's Web Press Site</description>
	<lastBuildDate>Fri, 28 Jan 2011 04:19:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>apache のリファラ解析</title>
		<link>http://holy.enyou.org/2008/10/24/analyse-apache-referer/</link>
		<comments>http://holy.enyou.org/2008/10/24/analyse-apache-referer/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 18:44:17 +0000</pubDate>
		<dc:creator>HoLY</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://holy.enyou.org/2008/10/24/analyse-apache-referer/</guid>
		<description><![CDATA[awk とか sed とか &#8211; qootas.org/blog を見て、せっかくなので自分もメモ書き。

apache のアクセスログからリファラを調べるとき、awstats や google analytics だと細かいものが調べられなかったりするので、自分はこんなコマンドを使っています。環境は FreeBSD。

$ grep `date -v-1d +%d/%b` access_log &#124; awk '{print $11}' &#124; grep -v '"http://holy' &#124; ruby -rnkf -n -e 'print NKF.nkf("-w", $_.gsub(/%([0-9A-F][0-9A-F])/i){$1.to_i(16).chr})' &#124; sort &#124; uniq -c &#124; sort -r 


最初の grep で「昨日のログだけ」調べる。 Linux なら -v-1d のかわりに 1 days ago とか書いておけばよいはず。

awk でリファラ部分だけ残す。 awk [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://qootas.org/blog/archives/2008/10/awk-sed.html">awk とか sed とか &#8211; qootas.org/blog</a> を見て、せっかくなので自分もメモ書き。</p>

<p>apache のアクセスログからリファラを調べるとき、awstats や google analytics だと細かいものが調べられなかったりするので、自分はこんなコマンドを使っています。環境は FreeBSD。</p>

<pre><code>$ grep `date -v-1d +%d/%b` access_log | awk '{print $11}' | grep -v '"http://holy' | ruby -rnkf -n -e 'print NKF.nkf("-w", $_.gsub(/%([0-9A-F][0-9A-F])/i){$1.to_i(16).chr})' | sort | uniq -c | sort -r 
</code></pre>

<p>最初の grep で「昨日のログだけ」調べる。 Linux なら <code>-v-1d</code> のかわりに <code>1 days ago</code> とか書いておけばよいはず。</p>

<p>awk でリファラ部分だけ残す。 awk で { print $11 } とやるのは必須すぎるので覚えておくのをおすすめ。 <code>cut -f 11 -d ' '</code> としてもいいけど、なんとなく分かりにくいよね。</p>

<p>grep の部分で（必要なら）自分の URL は省く。 awk の部分でやってもいいけど、何にも考えてない（ぉぃ。</p>

<p>Ruby部分は後で。</p>

<p>あとは sort と uniq でいつもの多い順にならべる奴。</p>

<p>実際には最後に lv とか w3m とかにパイプつないでで見る。 w3m なら「:」ですぐリンク先に飛べて便利。</p>

<p>Ruby 部分について。URLエスケープを戻して文字コードを統一してる。文字コードは各行で違うので、単純に iconv コマンドとか使うのはダメ。
実際は ~/bin/url2utf8.rb と同じことをするスクリプトを作って使ってるけどね。</p>

<p>まあそんなにチェックするものでもないけど、だいたいこんなコマンドとかで各種ログやら見てたりします。</p>
]]></content:encoded>
			<wfw:commentRss>http://holy.enyou.org/2008/10/24/analyse-apache-referer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

