アクセスログ期間

アクセスログ期間

access_log レコードの時間範囲をすばやく表示するには、access_log の最初と最後の時間を出力する方法は?出力は次のとおりです。

[21/Aug/2014:06:29:41 -0400] :::: [21/Aug/2014:10:29:41 -0400]

私のaccess_logパスは次のとおりです。

/var/www/vhosts/example.com/statistics/logs/access_log

アクセスログエントリの例:

123.123.123.123 - - [21/Aug/2014:08:12:30 -0400] "GET /wp-content/themes/simple/comment-style.css HTTP/1.1" 200 6221 "http://example.com/?p=1" "Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Firefox/31.0"

答え1

ログエントリが厳密に時系列でない場合は、GNUシステムで次のことができます。

#          1         2
# 12345678901234567890
# [21/Aug/2014:06:29:41 -0400]

< access.log sed -n 's/^[^[]*\(\[[^]]*]\).*/\1/p' |
  sort -k1.9n -k1.5M -k1.2n -k1.14,1.21 |
  sed -n '1p;$p' | paste -sd -

毎年夏時間と冬時間が変わると、結果が正しくない可能性があります。

答え2

あなたはそれを使用することができますsed

sed -n '1p;$p' /var/www/vhosts/example.com/statistics/logs/access_log

またはawk

awk 'NR==1;END{print}' /var/www/vhosts/example.com/statistics/logs/access_log

以下を使用する他の方法もありますtailhead

関連情報