저는 최근 Windows에서 Linux 서버로 마이그레이션한 다양한 MySQL 데이터베이스를 관리하는 일을 담당하고 있습니다. 그들은 잘 돌아가고 모든 것이 괜찮습니다. 그런데 오늘 아침에 오류 로그를 확인해야 했는데 지금은 기록되어 있습니다 /var/log/syslog
.
내 시스템 관리자가 오늘 퇴근했는데 평생 동안 이 데이터를 읽는 방법을 모르겠습니다.
다음을 사용하여 최신 데이터를 얻을 수 있습니다.
tail -f /var/log/syslog
그런데 오늘 아침 1시 이후에는 어떻게 데이터에 접근할 수 있나요? 아니면 어제부터요.
나는 시도했다:
grep mysqld /var/log/syslog | less
그런데 이건 오전 6시 이후의 데이터를 보여줍니다.
그런 다음 시도했습니다.
grep '^Nov 4 01' /var/log/syslog | less
하지만 이것은 나에게 긴 목록만을 보여줍니다 ^
답변1
시스템 로그 획득회전정기적으로 하세요. 결과는 다음과 같습니다.
$ ls /var/log/syslog*
/var/log/syslog /var/log/syslog.1 ... /var/log/syslog.7.gz
일반 및 순환 시스템 로그 파일에서 "mysqld" 패턴을 grep하려면 압축되지 않은 파일과 압축된 파일을 grep할 수 있는 zgrep을 사용하십시오.
$ zgrep mysqld /var/log/syslog* | less
"mysql"과 특정 날짜가 포함된 행을 찾으려면 확장을 활성화하는 -E 스위치를 사용하십시오.일반적인 표현:
$ zgrep -E 'Nov 4 01.+mysqld' /var/log/syslog* | less