Ubuntuマシンのバージョンをリモートで見つける方法は?


20

Ubuntuを実行している60〜80以上のシステムがあります。それらの一部はバージョン8.04で、一部は最新バージョン10.10で使用されています。現在、すべての古いUbuntuバージョンを新しいバージョンにアップグレードしています。すべてのUbuntuシステムのスイッチを入れ、古いUbuntuバージョンをメモしてからアップグレードするのは困難です。これらすべてのマシンのIPアドレスをテキストファイルで持っています。そこで、タスクを自動化するシンプルなbashスクリプトを探しています。出力は次のようになります。

172.29.34.40 ubuntu 10.04
172.29.34.41 ubuntu 8.04
172.29.34.42 ubuntu 8.10

など..誰も私を助けることができますか?

回答:


31

を使用してUbuntuバージョンを取得できます。

$ lsb_release -s -d
Ubuntu 10.04.1 LTS

これを自動化する場合は、stdinからホストのリストを読み取り、SSH経由でコマンドを実行するBashスクリプトを作成します。何かのようなもの

#!/bin/bash
while read host; do
   echo -n "$host: "
   ssh "$host" lsb_release -s -d < /dev/null
done

接続するすべてのマシンに共通のユーザーアカウントが1つある場合、これが探しているはずです。

#!/bin/bash
RUSER="username"
while read host; do
   echo -n "$host: "
   ssh "$RUSER@$host" lsb_release -s -d < /dev/null
done

versions.shとして保存し、実行可能にすることを忘れないで(chmod a+x versions.sh)、実行します

$ versions.sh < ips.txt

単一のコマンドまたは単純なスクリプトを実行して、ubuntuを実行している80のすべてのシステムの出力が必要です。単一のマシンでUbuntuのバージョンを見つけることは知っています。
karthick87

あなたがコメントを投稿したとき、私はすでに私の答えを更新していました。お役に立てば幸いです。
アダムByrtek

ところで、$ ipにuser@host情報が含まれる場合があります。
antivirtel

はい、スペースで区切られている限り、sshで受け入れられるものであれば何でもかまいません。
アダムByrtek

bashスクリプトとして作成してもらえますか?また、$ IPにはすべてのマシンのIPアドレスを含める必要がありますか?
karthick87

3

SSHサーバーを実行していると仮定すると、SSHのパッケージバージョンに基づいてUbuntuのバージョンを推測できます。

$ nc IP.IP.IP.IP 22
SSH-2.0-OpenSSH_5.5p1 Debian-4ubuntu5
Ctrl-C

opensshの現在のバージョンは、Launchpad https://launchpad.net/distros/ubuntu/+source/opensshにリストされています

openssh | 1:4.2p1-7ubuntu3.5 | dapper-updates/main
openssh | 1:4.7p1-8ubuntu3   | hardy-updates/main
openssh | 1:5.1p1-6ubuntu2   | karmic/main
openssh | 1:5.3p1-3ubuntu6   | lucid-updates/main
openssh | 1:5.5p1-4ubuntu5   | maverick-updates/main
openssh | 1:5.8p1-1ubuntu2   | natty/main

したがって、上記の例で5.5p1は、Debianバージョンは-4ubuntu5Ubuntu 10.10 Maverickシステムに見えます。

一部のサーバーでは/etc/ssh/sshd_configファイルに「DebianBanner no」が含まれている場合がありますが、OpenSSHのアップストリームバージョンはまだ表示されており、システムを識別するのに十分です(Ubuntuの各リリースには異なるアップストリームバージョンのOpenSSHがあります)。


私はこれが好きです-これは潜在的に最も労働集約的なソリューションではありません。80個のホストで何も設定する必要はありません。
DrSAR
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.