サーバーのアクセスログのファイルは情報量が多く、必要な情報を探すのに手間がかかります。
見やすくできないかと思い、絞り込みの方法を試しました。以下が今回使ったコマンドです。
ファイルの行数を数える
wc -l "logfile.log"
wcでファイルの行数をカウントできます。何万行にも及ぶこともあるので、これはどれくらいの行数があるかわかるので便利です。
キーワードで絞り込む
grep "keyword" logfile.log > filtered_output.txt
grepとキーワードでログの絞り込みができます。 「>」で結果をファイルに書き出しますが、今回はクリップボードにコピーをしました。
grep "keyword" logfile.log | xclip -selection clipboard
zsh: command not found: xclip
xclipがない。となったので、pbcopyを使用しました。
grep "keyword" logfile.log | pbcopy -selection clipboard
除外したいキーワード
絞り込みましたが、そこから除外したいキーワードが発生したので、-vでkeywordの除外を行いました。
grep -v "exclude_keyword" logfile.log | grep "keyword" | pbcopy
除外したいキーワードが複数でてきたので、-eでkeywordの複数除外をしました。
grep -v -e "exclude_keyword1" -e "exclude_keyword2" logfile.log | grep "keyword"
最後に
特定のIPアドレスを除外したり、特定のファイル名へのアクセスを絞り込みをしたりしました。
正規表現もつかえるようになると、検索の絞り込み方も広がると思います。
コメント