Linuxサーバーを管理していて、こんな場面に遭遇したことはありませんか?
- 「このサーバーって何のOS?バージョンはいくつ?」
- 「セキュリティパッチを適用する前にOS情報を確認したい」
- 「複数のサーバーで異なるバージョンが混在していないか調べたい」
- 「アプリケーションの動作要件を満たすOSバージョンか確認したい」
- 「障害対応でサポートに問い合わせる際にOS情報が必要」
特にRed Hat Enterprise Linux(RHEL)やCentOS、Rocky Linux、AlmaLinuxなどのRed Hat系Linuxでは、アップデートやソフトウェア導入のために正確なOS情報を把握することが必須です。
この記事では:
- Red Hat系LinuxでOSバージョンを確認する主要コマンド
- それぞれのコマンドの使い分け方と出力例
- 実際の運用場面での活用方法
- よくあるトラブルと解決方法
- スクリプトでの自動化テクニック
を初心者から中級者向けにわかりやすく詳しく解説します。
Red Hat系Linuxの基本知識

主要なRed Hat系ディストリビューション
ディストリビューション | 特徴 | 主な用途 |
---|---|---|
RHEL(Red Hat Enterprise Linux) | 商用Linux、有償サポート | 企業の本番環境、ミッションクリティカル |
CentOS | RHELのクローン(無償) | 開発・テスト環境、小規模サーバー |
Rocky Linux | CentOS代替(2021年〜) | CentOSからの移行先 |
AlmaLinux | CentOS代替(2021年〜) | CentOSからの移行先 |
Fedora | 最新技術の実験場 | 開発者向け、デスクトップ用途 |
なぜOS確認が重要なのか
セキュリティ管理
- セキュリティパッチの適用計画
- 脆弱性情報との対応確認
- EOL(End of Life)情報の把握
システム管理
- パッケージ管理の方針決定
- アップグレード計画の策定
- 互換性確認
運用管理
- 障害時のサポート問い合わせ
- ドキュメント作成
- 監査対応
【基本】/etc/redhat-release を確認

最も定番で確実な方法
Red Hat系Linuxでは、以下のファイルを確認するのが最も確実で一般的な方法です。
cat /etc/redhat-release
出力例とその解説
RHEL 8系の場合
Red Hat Enterprise Linux release 8.6 (Ootpa)
RHEL 9系の場合
Red Hat Enterprise Linux release 9.1 (Plow)
CentOS 7系の場合
CentOS Linux release 7.9.2009 (Core)
Rocky Linux 8系の場合
Rocky Linux release 8.7 (Green Obsidian)
AlmaLinux 9系の場合
AlmaLinux release 9.1 (Lime Lynx)
このコマンドの特徴
メリット
- Red Hat系なら必ず存在するファイル
- 1行で簡潔に情報が得られる
- 古いバージョンから最新まで対応
- シェルスクリプトで処理しやすい
取得できる情報
- ディストリビューション名
- メジャーバージョン・マイナーバージョン
- コードネーム(リリース名)
スクリプトでの活用例
#!/bin/bash
# OS情報を変数に格納
OS_INFO=$(cat /etc/redhat-release)
echo "現在のOS: $OS_INFO"
# バージョン番号のみを抽出
VERSION=$(cat /etc/redhat-release | sed 's/.* release \([0-9.]*\).*/\1/')
echo "バージョン: $VERSION"
【詳細】/etc/os-release を使ってより詳しく確認

systemd世代の標準的な方法
最近のLinux(systemd導入以降)では、/etc/os-release
ファイルにより構造化された情報が記録されています。
cat /etc/os-release
出力例と各項目の説明
RHEL 8系の詳細出力
NAME="Red Hat Enterprise Linux"
VERSION="8.6 (Ootpa)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="8.6"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Red Hat Enterprise Linux 8.6 (Ootpa)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:8.6:GA"
HOME_URL="https://www.redhat.com/"
DOCUMENTATION_URL="https://access.redhat.com/documentation/red_hat_enterprise_linux/8/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 8"
REDHAT_BUGZILLA_PRODUCT_VERSION=8.6
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.6"
主要な項目の意味
項目 | 意味 | 用途例 |
---|---|---|
NAME | ディストリビューション名 | 表示用の正式名称 |
VERSION | バージョン(コードネーム付き) | 人間が読みやすい形式 |
ID | ディストリビューションID | スクリプトでの判定 |
VERSION_ID | バージョン番号のみ | 数値比較用 |
PRETTY_NAME | 表示用の完全名称 | ユーザー向け表示 |
CPE_NAME | 標準識別子 | セキュリティツール連携 |
スクリプトでの活用
#!/bin/bash
# 特定の値を取得
source /etc/os-release
echo "OS ID: $ID"
echo "バージョン: $VERSION_ID"
# 条件分岐での活用
if [[ "$ID" == "rhel" ]]; then
echo "Red Hat Enterprise Linuxです"
elif [[ "$ID" == "centos" ]]; then
echo "CentOS Linuxです"
fi
grepを使った特定項目の抽出
# バージョンIDのみを取得
grep '^VERSION_ID=' /etc/os-release | cut -d'=' -f2 | tr -d '"'
# OS名のみを取得
grep '^NAME=' /etc/os-release | cut -d'=' -f2 | tr -d '"'
【包括的】hostnamectl でシステム情報をまとめて確認

systemdコマンドの活用
systemd搭載のOS(RHEL 7以降、CentOS 7以降)では、hostnamectl
コマンドが非常に便利です。
hostnamectl
詳細な出力例
Static hostname: web-server-01
Icon name: computer-server
Chassis: server
Machine ID: a1b2c3d4e5f6789012345678901234567890abcd
Boot ID: 12345678-abcd-ef01-2345-6789abcdef01
Operating System: Red Hat Enterprise Linux 8.6 (Ootpa)
CPE OS Name: cpe:/o:redhat:enterprise_linux:8.6:GA
Kernel: Linux 4.18.0-372.9.1.el8.x86_64
Architecture: x86-64
Hardware Vendor: Dell Inc.
Hardware Model: PowerEdge R730
取得できる情報の詳細
ホスト情報
- Static hostname:設定されているホスト名
- Icon name:システムアイコンの種類
- Chassis:ハードウェアの種類(server, desktop, laptop等)
システム情報
- Machine ID:システム固有の識別子
- Boot ID:現在の起動セッションID
- Operating System:詳細なOS情報
- CPE OS Name:標準的なプラットフォーム識別子
ハードウェア情報
- Kernel:カーネルバージョンとアーキテクチャ
- Architecture:CPUアーキテクチャ
- Hardware Vendor:ハードウェアベンダー
- Hardware Model:ハードウェアモデル
特定の情報のみを取得
# OS情報のみ
hostnamectl | grep "Operating System"
# カーネル情報のみ
hostnamectl | grep "Kernel"
# アーキテクチャのみ
hostnamectl | grep "Architecture"
【補足】その他の有用なコマンド
カーネル情報の確認
基本的なカーネル情報
uname -r
出力例:
4.18.0-372.9.1.el8.x86_64
詳細なシステム情報
uname -a
出力例:
Linux web-server-01 4.18.0-372.9.1.el8.x86_64 #1 SMP Tue Jun 14 05:33:13 EDT 2022 x86_64 x86_64 x86_64 GNU/Linux
lsb_releaseコマンド(利用可能な場合)
一部の環境ではlsb_release
コマンドも使用できます:
# パッケージのインストールが必要な場合がある
dnf install redhat-lsb-core
# 使用例
lsb_release -a
パッケージマネージャーからの情報取得
dnf/yumからの情報確認
# dnf(RHEL 8以降)
dnf list installed | grep release
# yum(RHEL 7以前)
yum list installed | grep release
rpmコマンドでの確認
rpm -qa | grep release
実践的な活用場面とスクリプト例
複数サーバーの一括確認
SSH経由での一括確認スクリプト
#!/bin/bash
# servers.txtに対象サーバーのIPアドレスまたはホスト名を記載
for server in $(cat servers.txt); do
echo "=== $server ==="
ssh "$server" 'cat /etc/redhat-release'
echo ""
done
条件分岐でのOS判定
バージョン別の処理分岐
#!/bin/bash
source /etc/os-release
case "$VERSION_ID" in
"7."*)
echo "RHEL/CentOS 7系です"
# RHEL 7固有の処理
;;
"8."*)
echo "RHEL/CentOS 8系です"
# RHEL 8固有の処理
;;
"9."*)
echo "RHEL 9系です"
# RHEL 9固有の処理
;;
*)
echo "未対応のバージョンです: $VERSION_ID"
;;
esac
システム情報の定期レポート
詳細なシステム情報取得スクリプト
#!/bin/bash
echo "===== システム情報レポート ====="
echo "実行日時: $(date)"
echo ""
echo "--- OS情報 ---"
cat /etc/redhat-release
echo ""
echo "--- 詳細OS情報 ---"
source /etc/os-release
echo "名前: $PRETTY_NAME"
echo "ID: $ID"
echo "バージョン: $VERSION_ID"
echo ""
echo "--- カーネル情報 ---"
uname -r
echo ""
echo "--- アップタイム ---"
uptime
echo ""
echo "--- CPU情報 ---"
grep "model name" /proc/cpuinfo | head -1 | cut -d':' -f2
echo ""
echo "--- メモリ情報 ---"
free -h | head -2
よくあるトラブルと解決方法

ファイルが存在しない場合
問題:/etc/redhat-releaseが見つからない
原因
- Red Hat系以外のLinux
- ファイルが誤って削除されている
- 非標準的なインストール
解決方法
# 他の方法で確認
cat /etc/os-release
hostnamectl
lsb_release -a
権限不足でアクセスできない場合
問題:Permission denied
解決方法
# sudoを使用
sudo cat /etc/redhat-release
# または管理者権限での実行
su -
cat /etc/redhat-release
古いシステムでの対応
RHEL 6以前やCentOS 6以前
# /etc/redhat-releaseは存在するが、/etc/os-releaseは存在しない
cat /etc/redhat-release
# システム情報の取得
cat /etc/issue
uname -a
応用:監視とオートメーション
NagiosやZabbixでの監視
OS情報を含む監視スクリプト
#!/bin/bash
# 監視システム用のOS情報取得
OS_INFO=$(cat /etc/redhat-release 2>/dev/null || echo "Unknown")
echo "OS_INFO=$OS_INFO"
if [[ -f /etc/os-release ]]; then
source /etc/os-release
echo "VERSION_ID=$VERSION_ID"
fi
Ansibleでの自動収集
Ansible playbook例
---
- name: Gather OS information
hosts: redhat_servers
tasks:
- name: Get RedHat release info
slurp:
src: /etc/redhat-release
register: redhat_release
- name: Display OS info
debug:
msg: "{{ redhat_release.content | b64decode }}"
まとめ:Red Hat系LinuxのOS確認をマスターしよう
Red Hat系Linux(RHEL, CentOS, Rocky, AlmaLinux)でOSバージョンを確認する方法のポイント:
- 基本確認:
cat /etc/redhat-release
で手軽に確認 - 詳細確認:
cat /etc/os-release
で構造化された情報を取得 - 包括確認:
hostnamectl
でシステム全体の情報を把握 - 用途別活用:スクリプトや監視システムでの自動化
使い分けの指針
日常的な確認
# 手軽な確認
cat /etc/redhat-release
# 詳しい情報が必要な場合
hostnamectl
スクリプトでの自動化
# 構造化されたデータが必要
source /etc/os-release
echo $VERSION_ID
# シンプルな確認
cat /etc/redhat-release
トラブルシューティング
# 複数の方法で確認
cat /etc/redhat-release
cat /etc/os-release
uname -a
hostnamectl
今日から始める3ステップ
- 基本コマンド習得:まず
cat /etc/redhat-release
を覚える - 詳細確認:
/etc/os-release
とhostnamectl
を使い分ける - 自動化:シェルスクリプトで複数サーバーの情報を効率的に収集
コメント