Linux接続ユーザーとサーバー負荷を一目で把握!wコマンド実務活用完全ガイド

概要

サーバーのモニタリングおよびユーザーセッション管理において、w コマンドは現在接続中のユーザーとシステム負荷(Load Average)を即座に把握できる不可欠なツールです。本記事では、w コマンドの基本的な出力の読み方から、実務でよく使われるオプションの組み合わせ、そして who や uptime との違いまで段階的に解説します。

1. 現在の接続ユーザーとシステム負荷を一目で把握する: 基本的な w の実行

w コマンドの1行目の出力結果と同じシステム稼働時間および負荷情報を比較・確認するために、uptime コマンドを実行します。

uptime

w コマンドは、現在システムにログインしているユーザー、各ユーザーが実行中の作業、そしてシステム負荷の状態を一目で把握する際に使用します。
出力の1行目には現在時刻、システム稼働時間、接続ユーザー数、直近1分・5分・15分間のロードアベレージ(Load Average)が表示され、2行目以降には各ユーザーの詳細なセッション情報が出力されます。
⚙️ [主なオプション]

-h, --no-header : ヘッダー(上部の負荷情報およびフィールドタイトル)を出力せず、ユーザー一覧のみを表示します。
-s, --short : 出力形式を短縮し、ログイン時刻、JCPU、PCPUフィールドを省略します。
-f, --from : 接続元IPアドレスやホスト名を表示する FROM フィールドの出力有無を切り替え(トグル)ます。
-i, --ip-addr : ホスト名の代わりにIPアドレス形式で接続元を表示します。
-o, --old-style : 従来の空白出力形式を使用し、アイドル時間が1分未満の場合は空白で表示します。

w

2. ヘッダーの省略と出力の簡素化によるモニタリングスクリプトの作成 (-h, -s)

w -h コマンドは、上部のシステム稼働時間の要約情報と各カラムのヘッダー行を省略し、ユーザーセッションの一覧のみを出力します。
スクリプトで接続ユーザー数や特定のユーザー情報をパースする際、不要なヘッダー行を除外する目的で頻繁に活用されます。
現在システムにログインしているユーザーがいないため、空の結果が返されています。

w -h

w -s コマンドは、要約形式の短い(short)フォーマットに出力形式を変更します。
デフォルト出力に含まれるログイン時刻(LOGIN@)、JCPU、PCPU の項目が省略されるため、ターミナル幅が狭い環境でも主要な情報であるセッション、接続元、アイドル時間(IDLE)、実行コマンド(WHAT)を簡潔に確認できます。

w -s

w -hs コマンドは、上部ヘッダー要約の省略オプション(-h)と出力簡素化オプション(-s)を組み合わせて実行します。
ヘッダーと不要なフィールドをすべて排除し、必要なセッションデータ行のみを直接取得できるため、シェルスクリプトによるモニタリング自動化に非常に役立ちます。
現在接続中のユーザーが存在しないため、何も表示されずに終了します。

w -hs

3. 特定ユーザーの照会とIPアドレス表示の制御 (-i, ユーザー指定)

特定ユーザーのフィルタリングを実践するため、whoami コマンドで現在ログインしているアカウント名を確認し、CURRENT_USER 変数に格納します。

CURRENT_USER=$(whoami)

w "$CURRENT_USER" コマンドは、指定したユーザーアカウントの接続セッション情報のみを抽出して出力します。
接続者が多いマルチユーザー環境において、特定ユーザーの作業内容やアイドル時間を迅速に追跡する際に便利です。

w “$CURRENT_USER”

w -i コマンドは、接続元(FROM)をホスト名ではなくIPアドレス形式に固定して出力します。
DNS逆引き(Reverse DNS)による遅延を防止し、正確なリモート接続元IPアドレスを確認したい場合に活用されます。

w -i

4. 実務での比較分析: w vs who vs uptime の違いのまとめ

uptime コマンドは、システムの現在時刻、稼働時間、現在の接続ユーザー数、そして直近1分・5分・15分間のロードアベレージ(Load Average)を1行で簡潔に出力します。
ユーザー別の詳細なセッション情報なしで、サーバー全体の稼働状態と負荷指標のみを素早くチェックしたい場合に適しています。

uptime

who -u コマンドは、現在システムにログインしているユーザーの一覧、端末情報、ログイン時刻、アイドル時間(idle time)、プロセスID(PID)を出力します。
システムの負荷やユーザーが実行中のコマンド情報は除外し、接続セッションの特定に集中したい場合に適しています。
現在アクティブなセッションが存在しないため、空の結果が出力されています。

who -u

w コマンドは、uptime のシステム負荷要約情報と who の接続ユーザーセッション一覧を組み合わせ、各ユーザーが実行中の作業(WHAT)やCPU使用率まで総合的に出力します。
上部にはシステムロードアベレージが表示され、下部にはセッション一覧のヘッダーが現れ、サーバーの負荷と接続ユーザーの活動履歴を単一の画面で同時に比較・分析できます。

w

ここまで、w コマンドを活用してLinux接続ユーザーとサーバーの負荷状況を一目で確認・分析する方法を解説しました。
実務におけるサーバー点検や障害対応時の基本的な確認ルーティンとして、ぜひ活用してみてください。