わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

Linuxのスペックやバージョンを知る方法

研究室のサーバはLinuxで,基本的に私が管理しています.
卒論執筆中の学生から,サーバの仕様やソフトウェアのバージョンを知る方法を教えてほしいという問い合わせがあり,一つ一つ回答しました.
「魚の釣り方」を書いておきます.

前提

該当するサーバにログインをし,シェルが使える状態で,コマンドを実行していくものとします.

カーネルのバージョン

次のコマンドで,Linuxカーネルのバージョンを含む,計算機情報が出力されます.

uname -a

なお,カーネルのバージョンは,サーバを適切に(安全に)管理していると頻繁に変わります.評価実験用にカーネルをチューンしていないのであれば(研究室でよく実施している,Webサービスの評価実験も該当します),それよりも,次で説明する,Linuxディストリビューションの種類とそのバージョンを記載することをお勧めします.

DebianUbuntu

サーバがDebianUbuntuかは分かっているけれど,どちらなのか,そしてどのバージョンなのかを知りたければ,次のコマンドを実行して,/etc/apt/sources.listを参照してください.

more /etc/apt/sources.list

moreは,lessやlvに替えてもかまいません(私のお気に入りはlvです).スペースキーで次のページに進み,qを押せば終了します.
ファイルの中身のうち,「#」から始まる行は無視してください.
Debianだったら例えば「squeeze」,Ubuntuだったら「quantal」といった,見慣れない単語が頻出すると思います.Geegleにかければ,バージョン情報を知ることができます.
squeezeについては「Debian 6.0」,quantalについては「Ubuntu 12.10」と表記するのが,いいでしょう.

メインメモリのサイズ

メインメモリ(実記憶)のサイズを知るには,次のコマンドが便利です.

top

上半分の左側に「Mem: 数」があると思います.その数が,メインメモリのサイズです.ただしその数はキロバイト*1ですので,おそらくギガバイトに変換して,卒論などに書くことになるはずです.800万なら「8GB」です.
topコマンドを終了するには,moreなどと同様で,qを押します.
詳細を知るには,タイプ数は多くなりますが,次のコマンドを実行してください.

more /proc/cpuinfo

PostgreSQLほか

PostgreSQLのバージョンを手っ取り早く知るには,次のコマンドです.

psql --version

「手っ取り早く」と書いたのは,これはPostgreSQLのクライアントのバージョンであり,サーバのバージョンは別だからです.
perlでもpythonでもrubyでも,bashでもzshでも,各コマンドのバージョンを知りたかったら,「 --version」をつけて,実行しましょう.

Apache HTTP Server

卒論で,Apacheに言及する場合,本文の最初に出現するところで「Apache HTTP Server(以下Apache)」と書いてください.2回目以降は「Apache」のみで十分です.
Apacheのバージョンをコマンドラインで確認するには,少々ステップが必要になります.とはいえ,この方法は他のファイルでも有用です.DebianUbuntuを仮定します.
apache」まで打ち込んで,Tabキーを押すと,apacheから始まる実行ファイルの候補が出ます.何でもいいのですが,例えば「apachecrl」まで表示させたら,Enterを押すのではなく,次のようなコマンドにしてから,実行します.

dpkg -S $(which apachectl)

私が管理している,あるサーバでは「apache2.2-common: /usr/sbin/apachectl」と出ました.この出力を使って,今度はこんなコマンドを実行します.

dpkg -s apache2.2-common

これでいろいろな情報が出てきます.バージョンだけ知りたければ,次のようにします.

dpkg -s apache2.2-common | grep Version

「dpkg -S ファイル名」で,そのファイルが属するパッケージを知ることができます.「dpkg -s パッケージ名」で,バージョンほか,パッケージの詳細が分かります.

PHP

PHPも,ファイルの所在をもとに,上と同じ方法でバージョンを知ることもできますが,まったく異なるアプローチを知っておいて損はありません.
Webサーバがuserdirをサポートし,PHPも利用可能となっていたら,

echo '<? phpinfo(); ?>' > ~/public_html/phpinfo.php

を実行します(あらかじめ,~/public_htmlはあるものとします).
そしてブラウザで,「http://サーバ名/~自分のユーザ名/phpinfo.php」にアクセスします.
ページの最上部に,バージョンが表示されます.
いろいろな設定情報を知ることができます.「Apache Version」は,Apacheのバージョンです.

(おまけ)フィルタ

  • コマンド出力の先頭10行を知りたかったら,「コマンド | head」
  • コマンド出力の先頭2行を知りたかったら,「コマンド | head -n 2」
  • コマンド出力の末尾10行を知りたかったら,「コマンド | tail」
  • コマンド出力のうち,特定の文字列を含む行だけ知りたかったら,「コマンド | grep 文字列」
  • コマンド出力のうち,特定の文字列を含まない行だけ知りたかったら,「コマンド | grep -v 文字列」
  • コマンド出力を並べ替えたかったら,「コマンド | sort」

(最終更新:2013-02-12 早朝)

*1:Ubuntuのほうでは「KiB Mem: 数」となっていて,「キビバイト」です.1KBは1000バイト,1KiBは1024バイトです.まあ,概数を求める際には,影響しませんが.