액세스 로그 기간

액세스 로그 기간

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

관련 정보