從系統日誌存取舊數據

從系統日誌存取舊數據

我負責管理我們最近(從 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

相關內容