저는 최근에 (Windows에서) Linux 서버로 옮긴 다양한 MySQL DB를 관리하고 있습니다. 잘 돌아가고 모든 것이 좋습니다. 하지만 오늘 아침에 오류 로그를 확인해야 했는데 이제 오류 로그가 /var/log/syslog
.
내 SysAdmin이 오늘 꺼져 있어서 평생 동안 이 데이터를 읽는 방법을 알 수 없습니다.
다음을 사용하여 최신 데이터를 얻을 수 있습니다.
tail -f /var/log/syslog
그런데 오늘 오전 1시부터의 데이터에 어떻게 접근하나요? 아니면 어제부터요.
나는 시도했다:
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
일반 및 순환 syslog 파일에서 "mysqld" 패턴을 grep하려면 압축되지 않은 파일과 압축된 파일을 grep할 수 있는 zgrep을 사용하십시오.
$ zgrep mysqld /var/log/syslog* | less
"mysql"과 특정 날짜가 포함된 행을 찾으려면 확장을 활성화하는 -E 스위치를 사용하십시오.정규 표현식:
$ zgrep -E 'Nov 4 01.+mysqld' /var/log/syslog* | less