Linuxのbzmoreコマンド活用術:展開不要でbzip2ファイルを高速閲覧

概要

サーバーの保守運用において、大容量のbzip2(.bz2)圧縮ファイルを内容確認のたびに展開していては、貴重なディスク容量を圧迫するだけでなく無駄な待機時間も生じてしまいます。bzmoreコマンドを活用すれば、アーカイブを事前に解凍する手間をかけず、ターミナル上でページ単位でログや構成ファイルを素早く閲覧できます。本記事では、bzmoreの基本的な仕組みから日々の障害調査やログ解析に直結する実践例までを分かりやすく解説します。

検証環境のセットアップとテスト用アーカイブの生成

bzmoreの動作を検証するためのベース環境として、パッケージリストの更新とbzip2ツールの導入を実施します。

bzip2パッケージの更新とインストール

圧縮および表示テストのデータソースとして、echoコマンドを使用して模擬的なログレコードをservice.logに書き込みます。

サンプルログファイルの作成

作業用の元ファイルを誤って消失させないよう、原本を保持する-kオプションを指定してbzip2 -k service.logを実行し、圧縮ファイルを生成します。

元ファイルを保持したままbzip2圧縮を実行

原本と新しく生成された圧縮ファイル双方の状態やデータサイズを確認するため、ls -lh service.log*を実行してファイル情報を一覧表示します。

元ログと圧縮アーカイブのファイルサイズ比較

基本操作:アーカイブを解凍せずに中身を即座にチェックする

確認対象となるbzip2ファイルの容量およびパーミッションをls -l service.log.bz2でチェックします。

対象アーカイブのプロパティ確認

bzmoreコマンドは、ストレージ上に中間ファイルを解凍展開することなく、メモリ上でストリーム処理を行いながら.bz2内部のテキストを直接プレビューできるツールです。
bzmore service.log.bz2を実行すると、ヘッダー部分に対象ファイル名が表示され、圧縮されていた元のログ本文がターミナルへ即座に出力されます。

bzmoreコマンドによる圧縮ログの閲覧

画面に収まらない巨大ログのページングとキー操作

ターミナルの1画面を超える大規模ファイルのページング挙動をシミュレートするため、120行のイベントログを自動生成して圧縮するseq 1 120 | sed 's/^/2026-10-15 [EventLog] Process ID #/' > large_events.log && bzip2 -f large_events.logを実行します。

ページング検証用の大規模ログ生成と圧縮

サイズが大きなアーカイブに対してbzmore large_events.log.bz2を投入すると、コンソールの表示幅に応じて自動的にページ分割が行われます。
この対話画面では、スペースキーによる次ページ送り、Enterキーによる1行ずつの下方スクロールが可能なほか、作業を切り上げたい場合はqキーを押すことで即座にシェルプロンプトへ復帰できます。

画面分割ページャーによるログの閲覧とナビゲーション

複数ファイルの連続プレビューとbzlessとの機能比較

複数のアーカイブファイルを連続して検査するケースを想定し、2つのノードログを作成して同時に圧縮するecho 'Node A: Status Healthy' > node_a.log && echo 'Node B: Status Degraded' > node_b.log && bzip2 -f node_a.log node_b.logを実行します。

テスト用の複数ノードログ作成と圧縮処理

bzmore node_a.log.bz2 node_b.log.bz2のように引数へ複数のアーカイブを並べて指定すれば、ファイルを跨いで順番に閲覧できます。
先行ファイルの最終行に達すると画面下部に--More--(Next file: node_b.log.bz2)とガイダンスが表示され、スペースキーを入力することで次のアーカイブの中身へとシームレスに遷移します。
ただし、bzmoreは伝統的なmoreの動作仕様に基づいているため前方向(下方向)への移動しか行えません。過去の行へ戻る逆スクロールや高度な検索機能が必要な場面では、上位互換であるbzlessを採用するのが賢明です。

複数アーカイブの順次閲覧とプロンプト表示

ここまで、ストレージリソースを節約しながらbzip2アーカイブを軽快に確認できるbzmoreコマンドの活用法を紹介しました。
ディスク容量の圧迫を防ぎつつ過去ログを迅速に精査したい場面で、ぜひ役立ててください。