GNU/Linux >> Linux の 問題 >  >> Linux

Unix で巨大なログ ファイルを表示するための 10 の素晴らしい例

トラブルシューティングのために巨大なログ ファイルを表示することは、システム管理者やプログラマーにとって日常的なタスクです。

この記事では、10 の素晴らしい例を使用して、巨大なログ ファイルを効果的に表示および操作する方法を確認しましょう。

例 1:sed コマンドを使用してファイルの特定の行を (行番号に基づいて) 表示する

行番号で言及されている特定の行のみを表示します。

Syntax: $ sed -n -e Xp -e Yp FILENAME
  • sed :デフォルトですべての行を出力する sed コマンド。
  • -n :出力を抑制します。
  • -e CMD :実行するコマンド
  • Xp:行番号 X を表示
  • Yp:行番号 Y を表示
  • FILENAME :処理するファイルの名前。

以下の例では、syslog の 120、145、1050 行を出力します。

$ sed -n -e 120p -e 145p -e 1050p /var/log/syslog

次の例では、var/log/cron の行番号 101 から 110 までの内容を表示できます。

  • M – 開始行番号
  • N – 終了行番号
Syntax: sed -n M,Np FILENAME

$ sed -n 101,110p /var/log/cron

例 2:head コマンドを使用してファイルの最初の N 行を表示する

この例では、/var/log/maillog ファイルの最初の 15 行のみを表示します。 15 を 10 に変更して、ログ ファイルの最初の 10 行を表示します。

Syntax: head -n N FILENAME

$ head -n 15 /var/log/maillog

例 3:head コマンドを使用してファイルの最後の N 行を無視する

この例は、最後の N 行を無視し、ファイルの先頭から残りの行のみを表示する方法を示しています。

次の例は、最後の 250 行を除く /var/log/secure のすべての行を表示します。

Syntax: head -n -N FILENAME

$ head -n -250 /var/log/secure

例 4:tail コマンドを使用してファイルの最後の N 行を表示する

この例では、/var/log/messages ファイルの最後の 50 行のみを表示します。 50 を 100 に変更して、ログ ファイルの最後の 100 行を表示します。

Syntax: tail -n N FILENAME

$ tail -n 50 /var/log/messages

例 5:tail コマンドを使用してファイルの最初の N-1 行を無視する

この例は、最初の N-1 行を無視し、残りの行のみを表示する方法を示しています。

次の例では、コメントのみを含む /etc/xinetd.conf の最初の 4 行を無視します。

Syntax: tail -n +N FILENAME

$ tail -n +5 /etc/xinetd.conf
defaults
{
        instances               = 60
        log_type                = SYSLOG authpriv
        log_on_success          = HOST PID
        log_on_failure          = HOST
        cps                     = 25 30
}
includedir /etc/xinetd.d

例 6:tail コマンドを使用して、増大するログ ファイルをリアルタイムで表示

これはおそらく、システム管理者が最もよく使用するコマンドの 1 つです。増大するログ ファイルを表示し、新しい内容のみを表示するには、以下に示すように tail -f を使用します。

次の例は、/var/log/syslog コマンドの内容をリアルタイムで示しています。

Syntax: tail -f FILENAME

$ tail -f /var/log/syslog

例 7:head および tail コマンドを使用してファイルの特定の行 (行番号に基づく) を表示する

以下の例では、/var/log/anaconda.log ファイルの行番号 101 ~ 110 が表示されます

  • M – 開始行番号
  • N – 終了行番号
Syntax: cat file | tail -n +N | head -n (M-N+1)

$ cat /var/log/anaconda.log | tail -n +101 | head -n 10
  • cat :ファイル全体を stdout に出力します。
  • tail -n +101 :指定された行番号までの行を無視し、指定された番号以降の行の出力を開始します。
  • head -n 10 :最初の 10 行、つまり 101 から 110 を出力し、残りの行は無視します。

例 8:パターンに一致する行と、一致に続くいくつかの行を表示します。

次の例は、/var/log/dmesg から「Initializing CPU」に一致する行と、この一致の直後の 5 行を表示しています。

# grep "Initializing CPU#1" /var/log/dmesg
Initializing CPU#1
[Note: The above shows only the line matching the pattern]

# grep -A 5 "Initializing CPU#1" dmesg
Initializing CPU#1
Calibrating delay using timer specific routine.. 3989.96 BogoMIPS (lpj=1994982)
CPU: After generic identify, caps: bfebfbff 20100000 00000000 00000000
CPU: After vendor identify, caps:  bfebfbff 20100000 00000000 00000000
monitor/mwait feature present.
CPU: L1 I cache: 32K, L1 D cache: 32K
[Note: The above shows the line and 5 lines after the pattern matching]

以前の記事を参照してください。 – grep コマンドの使用方法を説明する 15 の実用的な grep コマンドの例

以前の grep コマンドの記事で説明したように、次の操作が可能です。

  • grep のデフォルト機能である、パターンによって識別される特定の行を表示します。
  • 一致した文字のみを表示する
  • -A オプションを使用して、一致後に N 行を表示します。
  • -B オプションで試合前の N 行を表示
  • -C オプションを使用して、試合の周りの N 行を表示します。

例 9:ファイルから特定のバイトを表示する

次の例は、ファイルの上位 40 バイトまたは末尾 30 バイトを表示する方法を説明しています。

syslog の最初の 40 バイトを表示します。

$ head -c40 /var/log/syslog

syslog の最後の 30 バイトを表示します。

$ tail -c30 /var/log/syslog

例 10:圧縮されたログ ファイルの表示

特定の時間が経過すると、すべてのシステム ログ ファイルがローテーションされ、圧縮されます。オンザフライで解凍し、出力を別の UNIX コマンドにパイプして、以下で説明するようにファイルを表示できます。

以前の記事「Z コマンドの威力 – Zcat、Zless、Zgrep、Zdiff の例」を参照してください

  • 圧縮ファイルの最初の N 行を表示します。
    $ zcat file.gz | head -250
  • 圧縮ファイルの最後の N 行を表示します。
    $ zcat file.gz | tail -250
  • 圧縮ファイルの最後の N 行を無視します。
    $ zcat file.gz | head -n -250
  • 圧縮ファイルの最初の N 行を無視します。
    $ zcat file.gz | tail -n +250
  • パターンに一致する行を表示する
    $ zcat file.gz | grep -A2 'error'
  • 行番号で識別される特定の範囲の行を表示します。
    $ zcat file.gz | sed -n -e 45p -e 52p

戻る必要がある場合は、del.icio.us でこのページをブックマークして、参照できるようにしてください。


Linux
  1. Linuxログファイル

  2. UNIX / Linux のパフォーマンス監視に役立つ 10 の Sar (Sysstat) の例

  3. Linux および Unix でファイルをコピーする方法10 cp コマンドの例

  1. cPanelサービスの共通ログファイルと構成ファイルの場所

  2. Linux / UNIX でファイルを管理する 10 の Cat コマンドの例

  3. Linux / UNIX :特定の権限セットを持つファイルを検索するための find コマンドの例

  1. Linuxでの20の素晴らしいNmapコマンドの例

  2. Linuxユーザー向けの12のIPコマンド例

  3. UNIX ar の例:C アーカイブ ファイル (*.a) を作成、表示、抽出、変更する方法