私は最近 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