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
以下を使用する他の方法もありますtail
。head