syslog から古いデータにアクセスする

syslog から古いデータにアクセスする

私は最近 Linux サーバー (Windows から) に移行したさまざまな MySQL DB を管理しています。それらは正常に動作し、すべて順調です。しかし、今朝エラー ログを確認する必要がありましたが、これらは現在 に書き込まれています/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

Syslogは回転した定期的に実行します。結果は次のようになります。

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

通常の syslog ファイルおよびローテーションされた syslog ファイル内のパターン「mysqld」を grep するには、圧縮されていないファイルと圧縮されたファイルの grep が可能な zgrep を使用します。

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

「mysql」と特定の日付を含む行をgrepするには、拡張検索を有効にする-Eスイッチを使用します。正規表現:

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

関連情報