読者です 読者をやめる 読者になる 読者になる

日々之迷歩

世の中わからんことだらけ

ITが複雑で難しくなっていく様に翻弄される日々です

福岡サテライト会場より

今日は第16回シェル芸勉強会遠隔参加するため、福岡サテライト会場を開催してみた。場所はAIP Cafe。会員になれば、福岡で勉強会などを無料で開催出来る。

参加者数は私を含めて7人だった。会場こんな感じ。大きなホワイト壁に、私のMacbook Airでプロジェクタに写しながら参戦。円卓が4つあり、2人ずつ座っている。この会場だと8人くらいかな〜?10人はちょっと多すぎるかもしれない。 f:id:papiro:20150418161915j:plain

さて今回のお題は、Apache HTTPdのログをゴリゴリ解析。問題と回答はこちら。

【問題と解答例】第16回春だからログ解析するぞシェル芸勉強会 – 上田ブログ

データを扱う形式の勉強会だったが、一番難しいの準備1じゃね??肝心の準備で上手くいかず、置いてけぼり状態になっちゃった・・・私の回答だとログにへんなデータが入っている関係でうまくいかない。

そして福岡サテライト会場置き去り問題発生ww。とりあえず準備が不要な分の問題について考えていくことにした。後で会長の回答をgistに貼り付けてもらうことで、何とか追いつくことができた。会長も進行で手いっぱいだったりで、この辺は今後の課題かも。

あと、細かいことだが、Mac標準のzcatはcompress形式しか扱えない・・・gzip圧縮のファイルはgzcat使え。

さて、自分なりの回答を記載記載しておく。Q1〜Q4は、置いてけぼりくらっていたり、会長とほぼ同じ回答だったりなので・・・準備2はいろいろ考えたが、会長の回答で納得。awk便利。

準備1

シェル芸本にもあった、GNU dateコマンドのフィルタモードでこんな回答を。ただ、ログに変なデータが入っててtrコマンドでエラー発生。他の参加者はtrの代わりにsed使って回避していた模様。

$ paste <(cat access_log.nasa | LANG=C ggrep -o '\[.*\]' | tr '/' ' ' | tr -d '[]' | sed 's/:/ /' | sed 's/-0400//' | gdate -f - '+%Y%m%d %H%M%S') access_log.nasa | tr '\t' ' '

Q5

ダブルクォーテーション区切りのデータと考えてやってみた。が、ダブルクォーテーションが他でも入っている可能性があるのでこれは不完全。しかも問題勘違いして、IPアドレス毎に通信量集計しちゃった・・・

$ awk '-F"' '{print $1,$3}' danger_log | self 3 9 | sort -k1,1 | sm2 1 1 2 2 | sort -rn -k2,2 | head -n 10

Q6

手っ取り早いのでTukubaiコマンド使っちゃった・・・grepフィルタモードで解いた。

$ ls ???????? | ggrep -v -f - <(mdate -e 19950701 19950831 | tarr)

ちょっと難しすぎ〜という方から、Tukubai気に入った!という方までいろいろだった。次回も是非!という参加者いらっしゃったので、一応成功かな。

会場が基本的にゴミとか置いてけないので、ビアバッシュ的なものを開くのには向いていない。その辺どうすっかな〜。