Eu cuido de vários bancos de dados MySQL que recentemente migramos para servidores Linux (do Windows). Eles funcionam bem e está tudo bem. No entanto, esta manhã precisei verificar os logs de erros, mas agora eles estão gravados em arquivos /var/log/syslog
.
Meu SysAdmin está desligado hoje e não consigo ver como ler esses dados.
Posso obter os dados mais recentes usando
tail -f /var/log/syslog
Mas como faço para acessar os dados a partir da 1h de hoje? ou de ontem, nesse caso.
Tentei:
grep mysqld /var/log/syslog | less
mas isso me mostra dados a partir das 6h
Eu então tentei
grep '^Nov 4 01' /var/log/syslog | less
mas isso não me mostrou nada além de uma longa lista de ^
Responder1
Syslog obtémgiradoem uma base regular. O resultado é assim:
$ ls /var/log/syslog*
/var/log/syslog /var/log/syslog.1 ... /var/log/syslog.7.gz
Para usar o padrão "mysqld" em arquivos syslog regulares e rotacionados, use zgrep, que é capaz de executar grep em arquivos descompactados e compactados:
$ zgrep mysqld /var/log/syslog* | less
Para buscar linhas que contenham "mysql" e uma data específica, use a opção -E, que permite extensãoexpressões regulares:
$ zgrep -E 'Nov 4 01.+mysqld' /var/log/syslog* | less