Я слежу за различными базами данных MySQL, которые мы недавно перенесли на серверы Linux (с Windows). Они работают нормально и все хорошо. Однако сегодня утром мне нужно было проверить журналы ошибок, но теперь они записаны в /var/log/syslog
.
Мой системный администратор сегодня не работает, и я не могу понять, как читать эти данные.
Я могу получить последние данные, используя
tail -f /var/log/syslog
Но как мне получить доступ к данным за 1:00 ночи сегодняшнего дня? Или, если на то пошло, за вчерашний день?
Я пытался:
grep mysqld /var/log/syslog | less
но это показывает мне данные с 6 утра и далее
Затем я попробовал
grep '^Nov 4 01' /var/log/syslog | less
но это не показало мне ничего, кроме длинного списка ^
решение1
Syslog получаетповернутыйна регулярной основе. Результат выглядит так:
$ ls /var/log/syslog*
/var/log/syslog /var/log/syslog.1 ... /var/log/syslog.7.gz
Для поиска шаблона «mysqld» в обычных и ротируемых файлах системного журнала используйте zgrep, который способен выполнять поиск в несжатых и сжатых файлах:
$ zgrep mysqld /var/log/syslog* | less
Для поиска строк, содержащих «mysql» и определенную дату, используйте параметр -E, который включает расширенный поиск.обычные выражения:
$ zgrep -E 'Nov 4 01.+mysqld' /var/log/syslog* | less