Linux でログを表示するための 3 つのコマンドは次のとおりです: 1. ファイル内容とログ ファイルの変更をリアルタイムで表示できる tail コマンド; 2. 複数のログ ファイルを同時に監視できる multitail コマンド; 3. 、画面を煩雑にせずにログの変更をすばやく表示できるコマンドを減らします。
#このチュートリアルの動作環境: linux5.9.8 システム、Dell G3 コンピューター。
Linux でログを表示する 3 つのコマンドは何ですか?
Linux でリアルタイムにログを表示する 3 つの方法
最近、cnaaa.com からクラウド サーバーを購入しました。
Linux でファイルを表示する方法は誰もが知っているはずです。たとえば、cat またはless コマンドを使用できます。
これは、静的ファイルを表示する場合には問題ありません。ログ ファイルは動的であり、その内容はいつでも変更される可能性があるため、ログ ファイルを監視するには、ログ ファイルの内容がいつ変更されたかをリアルタイムで確認できる必要があります。
それでは、ログ ファイルをリアルタイムで表示するにはどうすればよいでしょうか? tailコマンドが利用できますが、この他にもリアルタイムにログファイルを閲覧できるツールを紹介します。
1. tail コマンドを使用してログ ファイルを表示します
tail コマンドは非常に広く使用されているため、システム管理者はログ ファイルのマントラテールをよく使用します (つまり、 : ログ ファイルの末尾)。
ほとんどの場合、tail コマンドはファイルの末尾の内容を表示するために使用されるため、tail という名前が付けられます。
-f オプションを使用して、ファイルの末尾のコンテンツを追跡します。これは、ファイルに新しく追加されたコンテンツを引き続き表示することを意味します。
tail -f location_of_log_file
[外部リンク画像の転送に失敗しました。ソース サイトにはリーチ防止メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-nzCWCjye-1664183028850) (D:/img/) 640.png)]
ログ ファイルの追跡を停止するには、ctrl c ショートカット キーを使用します。
tail
と grep
前述のように、tail コマンドはファイルの内容の変更をリアルタイムで表示できます。ただし、ファイルの内容が急激に更新されると、新しく更新された内容が点滅してしまい、あまり見にくくなります。
たとえば、ログ ファイルを追跡する場合、特定の用語 (文字列) を監視することがよくありますが、急速に更新される大量のコンテンツを追跡するのは非常に不便です。
この問題を解決するには、tail コマンドと grep コマンドを組み合わせます。以下に示すように:
tail -f log_file | grep search_term
[外部リンク画像の転送に失敗しました。ソース サイトにはリーチ防止メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-LxXIylsU-1664183028854)(D :/img/640-1664179747239 -1.png)]
こちらの方が見栄えが良くなりますね。これを踏まえて、いくつかの改善を加えてみましょう。
grep を使用して検索語を表示します。表示される情報は比較的限られています。検索結果のみが表示されるため、検索結果の最初と最後の数行を表示するには -C オプションをよく使用します。
tail -f log_file | grep -C 3 search_term
これにより、検索結果の前後に数行の情報が表示され、ログ情報をより適切に追跡できるようになります。
いくつか改善したいことがありますか?複数の検索語に対して grep を使用し、大文字と小文字を区別せずに使用できます。
tail -f log_file | grep -C 3 -i - E 'search_term_1|search_term_2'
ログ ローテーション (ログ ローテーション) を使用してログを追跡する
ほとんどのエンタープライズ サーバーでは、ログがローテーション (ローテーション) されます。つまり、ログ ファイルが特定のサイズに達すると、名前が変更され、圧縮されます。
[外部リンク画像の転送に失敗しました。ソース サイトにはリーチ防止メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-h2RUcofL-1664183028856) (D:/img/640) -1664179747241-2.png) ]
これにより、ログ ファイルがリアルタイムで追跡される場合に問題が発生する可能性があります。デフォルトでは、tail コマンドはファイル記述子に対して機能します。現在のログ ファイルがローテーションされる場合、tail コマンドはアーカイブされたログ ファイルを指すようになり、変更は記録されなくなります。
解決策は、ログ ファイルを名前で追跡することです。こうすることで、ログのローテーションが発生した場合でも、末尾は現在のログ ファイルを指します (名前は決して変更されないため)。
tail --follow=name log_file | grep -C 3 -i - E 'search_term_1|search_term_2'
tail はログ ファイルのリアルタイム監視に非常に適していますが、上記の方法では 1 つのログ ファイルのみを監視します。複数のログ ファイルを監視したい場合はどうすればよいでしょうか?次のセクションを参照してください。
tail を使用して複数のログ ファイルを表示する
Linux システムで作業している場合、tail コマンドを使用して複数のログ ファイルを同時に監視できます。必要なのは、ファイルのパスを指定することだけです。ファイル:
tail -f log_file_1 -f log_file_2
上記のコマンドを使用すると、ログ ファイルの更新がリアルタイムで表示され、異なるログ ファイルを区別するためにファイル名が先頭に表示されます:
[外部リンク]画像の転送に失敗しました。ソース サイトにはリーチ防止メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-CMiWKszs-1664183028859)(D:/img/640-1664179747242-3.png)]
上記の方法に加えて、もっと便利な方法があります。multitail と呼ばれるツールを使用するだけです。
2. multitail を使用して複数のログ ファイルを同時に監視する
名前が示すように、multitail は複数のファイルを同時に表示するために使用されます。
tail は複数のファイルを同時に監視できるのですが、multitail の何が特別なのでしょうか?
マルチテールの利点は、ファイルを分割ビューで表示したり、異なるファイルを異なる行や列に表示したりできることです。
tail 在同一视图中显示所有内容,所以有时候很难跟踪,multitail 通过提供类似 screen 命令的分割视图来克服了这一困难。
注意,multitail 在大多数Linux系统中没有被默认安装,所以在使用前需要先手动安装。
在 multitail 命令后跟文件路径,最好一次不要超过3个,因为超过3个或以上,跟踪起来就比较困难了。
multitail log_file_1 log_file_2
默认情况下,multitail 的工作方式与 tail -f 相同,它显示最后100行,然后进入实时监视视图;另外,它按行来拆分视图。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EZ9iX4d3-1664183028861)(D:/img/640-1664179747242-4.png)]
你可以按 b 键打开一个文件选择窗口,选择某个日志文件查看,以做进一步分析。
分割视图使用 -s 选项,后面跟一个数字,即视图的数量:
multitail -s 2 log_file_1 log_file_2
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ETQjV0KA-1664183028863)(D:/img/640-1664179747243-5.png)]
按 q 键可退出 multitail 所有的视图。
multitail 可以做的还有很多,大家感兴趣可以查看一下它的官方文档,本文就不继续介绍了。
3. 使用 less 命令实时查看日志文件
less 命令多用于读取文本文件,也可用于读取实时被更改的文件。
选项 +F 可以实时跟踪文件的更改:
less +F log_file
上述命令会打开日志文件,并实时显示正在写入的更改:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oDZivgss-1664183028865)(D:/img/640-1664179747243-6.png)]
按 ctrl +c 中断显示,按 q 会退出视图。
与 tail 命令不同,此方法可以让我们快速查看日志的更改,而不会使屏幕混乱。
上述监视日志的方法适用于传统的基于文本的日志文件。对于系统日志,可以使用 syslogs,但是现在许多 Linux 发行版已经开始使用 journal 日志来查看和分析日志,所以需要使用 journalctl 命令。
推荐学习:《Linux视频教程》
以上がLinux でログを表示する 3 つのコマンドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。