こんにちわ。監督です。
先日、shiovo嬢から「このURIにアクセスしている端末のIPアドレスの一覧をアクセスログから抽出して欲しい」なんてご依頼を頂きました。
こんなとき、皆さんはどんな手法をとってらっしゃるでしょうか?
僕はPerlとかAWKとかちゃんと勉強してこなかったので、標準コマンドをくっつけて対応することが多いです。
今回の場合は以下のようにやりました。
※Linux上で動いているApacheのアクセスログです。
zgrep 'hogehoge/hugahuga' access_log.[1-2].gz | cut -d " " -f 1 | sort | uniq
それぞれのコマンドの意味はmanコマンド等で確認して頂くと良いと思いますが、ざっくり解説しておくと
- zgrep 'hogehoge/hugahuga' access_log.[1-2].gz
- 今回はアクセスログがローテート時にgzip圧縮されていたのでzgrep使いましたが、まあここは何でもイイですね。
- cut -d " " -f 1
- 文字列を指定のデリミタで分割し、指定の番号のフィールドをリターンしてくれます。-dがデリミタの指定で、-fがフィールドの指定です。
- sort
- ソートをかけてくれます
- uniq
- ユニークにしてくれます
人によって違いが出るのがcutコマンドを使うところかな~と思いますが、俺様はこんなん使うぜ!ってのがあればぜひぜひ教えてください。
業務連絡:dtタグとddタグにスタイルつけたい