インフラ作業の現場でこんな場面は日常茶飯事です。Linuxにはシステム情報を確認するコマンドがいくつもあり、コマンドによって得られる情報の粒度や形式が異なります。
この記事では、Linuxサーバーのシステム情報を素早く把握するための主要コマンド(
hostnamectl・lscpu・uname -a・free・dmidecodeなど)をまとめて解説します。RHEL 9.4 / Rocky Linux 9.4 / Ubuntu 24.04 LTSで動作確認済みです。この記事のポイント
・hostnamectl でOS種別・カーネル・ホスト名を一度に確認できる
・lscpu でCPUコア数・スレッド数・アーキテクチャを素早く把握できる
・uname -a でカーネルバージョンを確認し、patch適用前後の状態管理に使える
・free -h・dmidecode でメモリ実装状況を物理スロット単位まで把握できる
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
なぜシステム情報の確認コマンドを整理しておくべきか
Linuxサーバーを管理していると、次のような場面でシステム情報が必要になります。・インシデント対応時に「対象サーバーのスペックと現在のOS版数」を確認する
・パッケージ更新の前後でカーネルバージョンを記録する
・スケールアウト時に既存サーバーと同じ構成を揃える
・ハードウェア障害の調査でメモリのスロット情報やDIMM型番が必要になる
情報の種類によって適切なコマンドが異なるため、「どのコマンドを叩けば何が分かるか」を体系的に把握しておくことが効率化の鍵です。
hostnamectl — OS・カーネル・ホスト名を一画面で確認
1. 基本の実行方法
hostnamectlはsystemd管理下のシステムで使えるコマンドで、ホスト名だけでなくOSの詳細情報とカーネルバージョンまで一度に表示します。# システム情報をまとめて表示 $ hostnamectl Static hostname: websvr01.example.com Icon name: computer-server Chassis: server Machine ID: a3b4c5d6e7f8a1b2c3d4e5f6a7b8c9d0 Boot ID: 11223344-5566-7788-99aa-bbccddeeff00 Operating System: Rocky Linux 9.4 (Blue Onyx) CPE OS Name: cpe:/o:rocky:rocky:9::baseos Kernel: Linux 5.14.0-427.22.1.el9_4.x86_64 Architecture: x86-64 Hardware Vendor: Dell Inc. Hardware Model: PowerEdge R640
・Operating System: OS名とバージョン(/etc/os-releaseの内容)
・Kernel: 現在起動中のカーネルバージョン
・Hardware Vendor / Model: DMIから取得したハードウェア情報(物理サーバー・仮想マシンで表示が異なる)
2. ホスト名だけ確認したい場合
# ホスト名のみ表示 $ hostname websvr01.example.com # shortname(ドメイン部分なし) $ hostname -s websvr01 # FQDN $ hostname -f websvr01.example.com
3. Ubuntu / Debian 系での注意点
Ubuntu 24.04 LTSでもhostnamectlは動作しますが、Hardware VendorやHardware Modelの表示にはパッケージdmidecodeが必要です。クラウド(EC2・GCE)では仮想ハードウェア情報が表示されます。uname — カーネルバージョンとアーキテクチャを確認
1. uname -a で全情報を一括表示
# 全項目を一行で出力(パッチ適用前後の確認に最適) $ uname -a Linux websvr01 5.14.0-427.22.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jul 18 10:11:15 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
・Linux — カーネル名
・websvr01 — ホスト名
・5.14.0-427.22.1.el9_4.x86_64 — カーネルリリース(バージョン番号)
・#1 SMP PREEMPT_DYNAMIC Thu Jul 18 10:11:15 UTC 2024 — カーネルビルド日時
・x86_64 x86_64 x86_64 — マシンタイプ・プロセッサタイプ・ハードウェアプラットフォーム
・GNU/Linux — OS名
2. 目的別のオプション
# カーネルバージョンのみ(スクリプトで使いやすい形式) $ uname -r 5.14.0-427.22.1.el9_4.x86_64 # アーキテクチャのみ(ARM/x86判定に使う) $ uname -m x86_64 # ホスト名のみ $ uname -n websvr01
3. カーネル更新後の確認パターン
dnf update kernelやapt upgrade linux-imageの後、再起動前後でカーネルバージョンを記録するのが現場での定番手順です。# 更新前のバージョンを記録 $ uname -r > /tmp/kernel_before.txt # パッケージ更新と再起動 $ sudo dnf update -y kernel && sudo reboot # 再起動後に確認 $ uname -r 5.14.0-503.11.1.el9_5.x86_64
lscpu — CPUのコア数・スレッド数・アーキテクチャを確認
1. lscpu の基本実行
$ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Address sizes: 46 bits physical, 57 bits virtual Byte Order: Little Endian CPU(s): 32 On-line CPU(s) list: 0-31 Vendor ID: GenuineIntel Model name: Intel(R) Xeon(R) Silver 4216 CPU @ 2.10GHz CPU family: 6 Model: 85 Thread(s) per core: 2 Core(s) per socket: 16 Socket(s): 1 Stepping: 7 CPU(s) scaling MHz: 50% CPU max MHz: 3200.0000 CPU min MHz: 800.0000 BogoMIPS: 4200.00
2. スケールアウト時に確認すべき項目
サーバーのスペックを揃える際に特に重要な項目:・CPU(s): 論理CPU数(コア数×スレッド数×ソケット数の合計)
・Thread(s) per core: 2なら Hyper-Threading 有効
・Core(s) per socket: 物理コア数
・Socket(s): 物理ソケット(CPU)の搭載数
3. スクリプトから論理CPU数を取得する方法
# lscpu の出力から CPU数のみ抽出 $ lscpu | grep '^CPU(s):' | awk '{print $2}' 32 # /proc/cpuinfo からも取得できる(lscpu がない環境向け) $ nproc 32
free — メモリの使用状況と空き容量を確認
1. free -h で人間が読みやすい形式で表示
$ free -h total used free shared buff/cache available Mem: 62Gi 12Gi 38Gi 542Mi 11Gi 49Gi Swap: 8.0Gi 0B 8.0Gi
・used: 使用中のメモリ量(buff/cache を含まない)
・free: 何にも使われていないメモリ
・buff/cache: カーネルが管理するバッファ・キャッシュ(空きとして解放可能)
・available: 実際にプロセスが使える見込みの空きメモリ。監視で見るべき値はここ
2. スワップ利用を確認するワンライナー
# 1秒ごとにメモリ状況を更新表示(Ctrl+C で停止) $ free -h -s 1 # スワップ使用量だけ確認したい場合 $ free | awk '/Swap:/ {printf "Swap used: %s MB\n", $3/1024}' Swap used: 0 MB
dmidecode — 物理メモリのスロット情報を確認
dmidecode でハードウェア情報を取得するには root 権限が必要です。物理サーバーで実際のメモリスロット数・DIMM型番・最大増設可能容量を調べる際に使います。# メモリスロット情報を確認(root権限が必要) $ sudo dmidecode -t memory | grep -E 'Size:|Type:|Speed:|Locator:' Locator: DIMM_A1 Size: 32 GB Type: DDR4 Speed: 2933 MT/s Locator: DIMM_A2 Size: 32 GB Type: DDR4 Speed: 2933 MT/s Locator: DIMM_B1 Size: No Module Installed Type: Unknown Speed: Unknown # 搭載メモリ合計を確認 $ sudo dmidecode -t memory | grep 'Size:' | grep -v 'No Module' Size: 32 GB Size: 32 GB
システム情報を一括取得するスクリプト例
引き継ぎドキュメントや設定記録を作成する際に、上記のコマンドをまとめて実行するスクリプトが便利です。#!/bin/bash # sysinfo.sh — サーバー情報を一括出力 echo "===== ホスト・OS情報 =====" hostnamectl echo "" echo "===== カーネルバージョン =====" uname -r echo "" echo "===== CPU情報 =====" lscpu | grep -E 'Architecture|CPU\(s\)|Thread|Core\(s\)|Socket|Model name' echo "" echo "===== メモリ使用状況 =====" free -h echo "" echo "===== ディスク使用状況 =====" df -h --total | grep -E '^/|^Filesystem|total'
# 実行例 $ bash sysinfo.sh ===== ホスト・OS情報 ===== Static hostname: websvr01.example.com Operating System: Rocky Linux 9.4 (Blue Onyx) Kernel: Linux 5.14.0-427.22.1.el9_4.x86_64 Architecture: x86-64 ===== カーネルバージョン ===== 5.14.0-427.22.1.el9_4.x86_64 ===== CPU情報 ===== Architecture: x86_64 CPU(s): 32 Thread(s) per core: 2 Core(s) per socket: 16 Socket(s): 1 Model name: Intel(R) Xeon(R) Silver 4216 CPU @ 2.10GHz ===== メモリ使用状況 ===== total used free shared buff/cache available Mem: 62Gi 12Gi 38Gi 542Mi 11Gi 49Gi Swap: 8.0Gi 0B 8.0Gi ===== ディスク使用状況 ===== Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 12G 36G 25% / /dev/sda2 200G 45G 145G 23% /var /dev/sda3 20G 1G 18G 5% /tmp total 270G 58G 199G 23% -
/usr/local/bin/sysinfoに配置してchmod +xしておくと、どのサーバーでも呼び出せます。なお、systemd-analyze で起動時間計測を組み合わせることで、起動プロセスのボトルネックも同時に把握できます。トラブルシュート — よくあるエラーと対処法
1. hostnamectl: Failed to connect to bus
systemd が起動していない環境(Dockerコンテナ内など)で発生します。$ hostnamectl Failed to connect to bus: No such file or directory # 代替手段: /etc/os-release を直接参照する $ cat /etc/os-release NAME="Rocky Linux" VERSION="9.4 (Blue Onyx)" ID=rocky ID_LIKE="rhel centos fedora" VERSION_ID="9.4"
2. lscpu: コマンドが見つからない
lscpu はutil-linux パッケージに含まれています。最小インストール環境では未導入の場合があります。# RHEL/Rocky/CentOS $ sudo dnf install -y util-linux # Ubuntu/Debian $ sudo apt install -y util-linux # lscpu が使えない環境では /proc/cpuinfo を参照 $ grep 'model name' /proc/cpuinfo | uniq model name : Intel(R) Xeon(R) Silver 4216 CPU @ 2.10GHz $ grep -c '^processor' /proc/cpuinfo 32
3. dmidecode: Permission denied
$ dmidecode -t memory # dmidecode 3.4 Permission denied: /dev/mem # sudo を付けて実行する $ sudo dmidecode -t memory
4. クラウド(EC2・GCE)で dmidecode の出力が参考にならない
仮想マシン上ではdmidecode が正確な物理ハードウェア情報を返しません。AWSであればcurl http://169.254.169.254/latest/meta-data/instance-typeでインスタンスタイプを確認するのが正確です。本記事のまとめ
Linuxサーバーのシステム情報を確認するコマンドと用途を整理します。| 確認したい情報 | コマンド | 備考 |
|---|---|---|
| ホスト名・OS名・カーネルを一度に | hostnamectl |
systemd必須。Dockerコンテナ内では使えない |
| カーネルバージョン(スクリプト向け) | uname -r |
全情報は uname -a |
| CPUコア数・スレッド数・型番 | lscpu |
util-linuxパッケージ。代替は /proc/cpuinfo |
| 論理CPU数だけ | nproc |
スクリプトで使いやすい |
| メモリ使用状況(プロセス向き空き) | free -h |
available列を監視すること |
| 物理メモリスロット・DIMM型番 | sudo dmidecode -t memory |
root権限必須。仮想環境では不正確 |
| OS情報(systemdなし環境) | cat /etc/os-release |
コンテナ・最小環境向け |
Linuxサーバーの管理に慣れたら、次は複数サーバーの情報を一括収集するAnisble Playbookの導入も検討してみてください。
サーバーのシステム情報を素早く把握する習慣は、サーバー設計の「型」から生まれます
インシデント対応やスケールアウト時に「このサーバーのスペックを即答できる」かどうかは、日常的な確認習慣と設計の理解があるかで差がつきます。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:Linuxメール配送をPostfixで動かす最小構成|ローカル配送からテスト送信までの実践手順
- 前のページへ:Linuxでファイル一覧を作業証跡として残す方法|tree・lsの出力をテキスト保存する手順
- この記事の属するカテゴリ:Linuxtipsへ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます