从系统日志访问旧数据

从系统日志访问旧数据

我负责管理我们最近(从 Windows)迁移到 Linux 服务器的各种 MySQL 数据库。他们运行良好,一切都很好。然而,今天早上我需要检查错误日志,但这些日志现在已写入/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

系统日志获取旋转的定期进行。结果如下:

$ ls /var/log/syslog*
/var/log/syslog  /var/log/syslog.1  ...  /var/log/syslog.7.gz

要在常规和轮换系统日志文件中 grep 模式“mysqld”,请使用 zgrep,它能够 grep 未压缩和压缩文件:

$ zgrep mysqld /var/log/syslog* | less

要 grep 查找包含“mysql”和特定日期的行,请使用 -E 开关,该开关启用扩展常用表达:

$ zgrep -E 'Nov  4 01.+mysqld' /var/log/syslog* | less

相关内容