序文:
プロジェクトがオンラインになった後、問題のトラブルシューティングを行う場合、ローカルで行う場合のようにプロジェクトをデバッグすることはできませんが、このとき、ログは非常に重要な役割を果たします。では、Linux 環境でログを表示するにはどうすればよいでしょうか? 以下に、一般的に使用される Linux クエリ ログ コマンドをいくつか示します。
-n は実際の行番号で、nl コマンドに相当します。 | |
尾部 -100f sys.log | 100行のデータをリアルタイムで監視 |
テール -n 10 sys.log | ログの最後にあるログの最後の 10 行をクエリします。 |
テール -n +10 sys.log | 10 行以降のすべてのログをクエリする |
tail の逆で、tail はログを見た後の行数です。 | |
head -n 10 sys.log | ログ ファイル内のログの最初の 10 行をクエリします。 |
head -n -10 sys.log |
ログ ファイル内の最後の 10 行を除くすべてのログをクエリします。 |
tacは逆順に見るためのもので、catという単語を逆から書いたものです | |
猫 -n sys.log | grep "ユーザー情報を取得" | クエリキーワードログ |
アプリケーションシナリオ:
アプリケーション シナリオ 1: 行番号で表示---キーワード付近のログをフィルタリングする
1) cat -n sys.log |grep "getUserInfo" でキーログの行番号を取得します。
2)cat -n sys.log |tail -n +100|head -n 20
キーワードが含まれる中央の行を選択し、キーワードの前後 10 行のログを表示します。
tail -n +100 は、100 行後のログをクエリすることを意味します
head -n 20 は、前のクエリ結果の最初の 20 レコードをチェックすることを意味します。
アプリケーション シナリオ 2: 日付に基づいてログをクエリする
sed -n '/2022-05-26 16:17:20/,/2022-05-26 16:17:36/p' sys.log
特記事項: 上記の 2 つの日付はログに出力されるログである必要があります。そうでない場合は無効になります。
最初に grep '2022-05-26 16:17:20' sys.log を実行して、ログにこの時点が存在するかどうかを確認します
適用シナリオ 3: ログの内容が非常に大きいため、画面に印刷すると表示が不便です。
(1) moreコマンドとlessコマンドを使用します。
例: cat -n sys.log |grep "debug" |more これはページ単位で印刷されます。ページをめくるにはスペースバーをクリックしてください。
(2) >xxx.txt を使用してファイルに保存し、ファイルをプルダウンして分析できます。
例:cat -n test.log |grep "debug" >debug.txt