apacheのアクセスログを日付毎のファイルに分割するには

日付 2019.06.01
タイトル apacheのアクセスログを日付毎のファイルに分割するには
本文
# apacheのアクセスログを日付毎に分割
cat /var/log/httpd/access_log | awk '
BEGIN {
  m["Jan"] = "01"; m["Feb"] = "02"; m["Mar"] = "03";
  m["Apr"] = "04"; m["May"] = "05"; m["Jun"] = "06";
  m["Jul"] = "07"; m["Aug"] = "08"; m["Sep"] = "09";
  m["Oct"] = "10"; m["Nov"] = "11"; m["Dec"] = "12";
}

{
  # 40x, 50x、画像やcss, スクリプトへのアクセスを除外する場合
  if ($7 !~ /(\.(css|js|png|jpg|gif|ico)|robots.txt)/ && $9 !~ /^(4|5)/) {
    if (match($4, /\[(..)\/([^\/]+)\/(....)/, x)) {
      print $0 >> "access_log." x[3] "-" m[x[2]] "-" x[1];
    }
  }
}
'
# gzでまとめてあるログと合わせて処理する場合
#zcat /var/log/httpd/access_log*.gz | cat - /var/log/httpd/access_log

# ログの件数
cat access_log | wc -l

# パス毎の閲覧数
cat access_log | \
  awk -F '"' '{ print $2, $3 }' | \
  awk '{ print $2 }' | \
  sort | uniq -c | sort -nr | awk '{ print $1, "\t", $2 }'