Как скопировать строки access.log по времени?

У меня огромный веб-сервер access.log в CentOS. Я обращаюсь к нему через удаленный VPN, поэтому я не могу скопировать файл или прочитать его напрямую.

Я знаю конкретное время в журналах, которые я хочу скопировать, но слишком слишком легко вернуть хвост журнала в текстовый файл. Вот как выглядит строка журнала.

10.255.16.203 - - [26/Mar/2014:16:35:13 +0000] 

Поэтому мой вопрос : как я могу скопировать определенный раздел очень большого журнала, если знаю строки времени, которые я хочу найти?

One Solution collect form web for “Как скопировать строки access.log по времени?”

Команда grep предназначена для отображения только совпадающих строк данных файлов. С помощью опции -C можно отображать не только соответствующие линии (линии), но и некоторые строки до и после нее.

Итак, чтобы иметь 3 строки до и после строки, которую вы хотите:

 $ grep -C 3 "26/Mar/2014:16:35:13 +0000" access.log 

Вы также можете точно настроить количество строк, отображаемых после и / или перед соответствующими линиями, с параметрами -A и -B . На самом деле -C 3 совпадает с -A 3 -B 3 .

Если имеется более одной подходящей строки, grep отобразит 3 строки до и после блока согласованных строк.

Пример:

 $ grep -C 3 "25/Mar/2014:10:40:59 +0100" access.log 10.0.0.44 - httpuse [25/Mar/2014:09:41:17 +0100] "GET /dummy/BIGDummy_133644_1565_DL.xml.gz HTTP/1.1" 200 507 "-" "-" 10.0.0.43 - httpuse [25/Mar/2014:09:59:51 +0100] "GET /dummy/BIGDummy_133647_48267_DL.xml.gz HTTP/1.1" 200 1677 "-" "-" 10.0.0.44 - httpuse [25/Mar/2014:10:40:42 +0100] "GET /dummy/BIGDummy_133664_39603_DL.xml.gz HTTP/1.1" 200 1677 "-" "-" 10.0.0.40 - httpuse [25/Mar/2014:10:40:59 +0100] "GET /dummy/BIGDummy_133664_DL.xml.gz HTTP/1.1" 200 60142 "-" "-" 10.0.0.41 - httpuse [25/Mar/2014:10:40:59 +0100] "GET /dummy/BIGDummy_133667_23124_DL.xml.gz HTTP/1.1" 200 5202 "-" "-" 10.0.0.40 - httpuse [25/Mar/2014:10:43:09 +0100] "GET /dummy/BIGDummy_133668_46_DL.xml.gz HTTP/1.1" 200 445 "-" "-" 10.0.0.42 - httpuse [25/Mar/2014:10:43:10 +0100] "GET /dummy/BIGDummy_133668_4116_DL.xml.gz HTTP/1.1" 200 597 "-" "-" 10.0.0.40 - httpuse [25/Mar/2014:10:43:13 +0100] "GET /dummy/BIGDummy_133665_DL.xml.gz HTTP/1.1" 200 57902 "-" "-" 

От man grep :

 NAME grep, egrep, fgrep - print lines matching a pattern SYNOPSIS grep [options] PATTERN [FILE...] DESCRIPTION Grep searches the named input FILEs (or standard input if no files are named, or the file name - is given) for lines containing a match to the given PATTERN. By default, grep prints the matching lines. OPTIONS -A NUM, --after-context=NUM Print NUM lines of trailing context after matching lines. Places a line containing -- between contiguous groups of matches. -B NUM, --before-context=NUM Print NUM lines of leading context before matching lines. Places a line containing -- between contiguous groups of matches. -C NUM, --context=NUM Print NUM lines of output context. Places a line containing -- between contiguous groups of matches. 
  • Apache (httpd) не запускается при загрузке - CentOS 7
  • Redis как сервис для CentOs6
  • Проблемы с обновлением Yum на CentOS 6.5 минимальны, поскольку гостевая версия VMware
  • Какие файлы журнала аудита создаются в Linux для отслеживания действий пользователей?
  • отпустите службу systemd перед выключением
  • Команда sudo не работает, когда strace прилагается с PID bash
  • Последние пользователи за последние 30 минут
  • Сброс пароля root в CentOS 7
  • Модуль ядра lz4 в CentOS без перекомпиляции
  • Помощь в применении плохо упакованных патчей?
  • найти пользовательские папки
  • Linux и Unix - лучшая ОС в мире.